1. 程式人生 > >關於java中的File.separator

關於java中的File.separator

前些天遇到一個問題,困擾了好久,現在終於解決了。

問題:上傳的圖片不能正確顯示。

我的開發環境是在Windows下,工程在Windows下能正常部署,上傳的圖片也可以正常的顯

示。但是把工程部署在伺服器上的時候,圖片總是不能顯示,很是讓人鬱悶,後來在網上找了

各種資料,問題終於解決了。

檔案路徑的分隔符在windows系統和linux系統中是不一樣。

比如說要在temp目錄下建立一個test.txt檔案,在Windows下應該這麼寫:

File file1 = new File (“C:\tmp\test.txt”);

 

 

在Linux下則是這樣的:

File file2 = new File (“/tmp/test.txt”);

而我剛開始就是按照File file1 = new File (“C:\tmp\test.txt”);這種方式寫的,在

Windows下沒有問題,但是將工程部署在伺服器上時,就出問題了。伺服器是linux系統,所

以這時檔案路徑就出錯了。後來將分隔符用File.separator 代替,ok,問題解決了。下邊介

紹下File.separator 。

如果要考慮跨平臺,則最好是這麼寫:
File myFile = new File(“C:” + File.separator + “tmp” + File.separator, “test.txt”);

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。