在windows中的文件分隔符是 \ 和 /均可以 可是在Linux中,文件分隔符只能是/ 因此用了\\的程序在Linux下會出問題。 而File.separator是系統默認的文件分割符號,屏蔽了這些系統的區別。 用File.separator保證了在任何系統下不會出錯。
文件路徑的分隔符在windows系統和linux系統中是不同。linux
好比說要在temp目錄下創建一個test.txt文件,在Windows下應該這麼寫:編程
File file1 = new File (「C:\tmp\test.txt」);windows
在Linux下則是這樣的:服務器
File file2 = new File (「/tmp/test.txt」);spa
而我剛開始就是按照File file1 = new File (「C:\tmp\test.txt」);這種方式寫的,在code
Windows下沒有問題,可是將工程部署在服務器上時,就出問題了。服務器是linux系統,所orm
以這時文件路徑就出錯了。後來將分隔符用File.separator 代替,ok,問題解決了。下邊介字符串
紹下File.separator 。部署
若是要考慮跨平臺,則最好是這麼寫:
File myFile = new File(「C:」 + File.separator + 「tmp」 + File.separator, 「test.txt」);it
File類有幾個相似separator的靜態字段,都是與系統相關的,在編程時應儘可能使用。
separatorChar
public static final char separatorChar
與系統有關的默認名稱分隔符。此字段被初始化爲包含系統屬性 file.separator 值的第一個字符。在 UNIX 系統上,此字段的值爲 ‘/’;在 Microsoft Windows 系統上,它爲 ‘\’。
separator
public static final String separator
與系統有關的默認名稱分隔符,爲了方便,它被表示爲一個字符串。此字符串只包含一個字符,即 separatorChar。
pathSeparatorChar
public static final char pathSeparatorChar
與系統有關的路徑分隔符。此字段被初始爲包含系統屬性 path.separator 值的第一個字符。此字符用於分隔以路徑列表 形式給定的文件序列中的文件名。在 UNIX 系統上,此字段爲 ‘:’;在 Microsoft Windows 系統上,它爲 ‘;’。
pathSeparator
public static final String pathSeparator
與系統有關的路徑分隔符,爲了方便,它被表示爲一個字符串。此字符串只包含一個字符,即 pathSeparatorChar。