java.io.File 類包含四個靜態分隔符變數。這裡我們將學習它們以及何時使用它們。
- File.separator: 作為字串的平台相依型預設名稱分隔符。對於 Windows,它是 ‘\’,對於 Unix,它是 ‘/’。
- File.separatorChar: 與 separator 相同但它是字符。
- File.pathSeparator: 路徑分隔符的平台相依型變數。例如在 Unix 系統中,路徑或 CLASSPATH 變數的路徑列表由 ‘:’ 分隔,在 Windows 系統中則由 ‘;’ 分隔。
- File.pathSeparatorChar: 與 pathSeparator 相同但它是字符。
Java 檔案分隔符
請注意,所有這些都是最終變數且系統相依。 這是用於列印這些分隔符變數的 Java 程式。
package com.journaldev.files;
import java.io.File;
public class FileSeparator {
public static void main(String[] args) {
System.out.println("File.separator = "+File.separator);
System.out.println("File.separatorChar = "+File.separatorChar);
System.out.println("File.pathSeparator = "+File.pathSeparator);
System.out.println("File.pathSeparatorChar = "+File.pathSeparatorChar);
}
}
在 Unix 系統上的上述程式輸出:
File.separator = /
File.separatorChar = /
File.pathSeparator = :
File.pathSeparatorChar = :
在 Windows 系統上的程式輸出:
File.separator = \
File.separatorChar = \
File.pathSeparator = ;
File.pathSeparatorChar = ;
為了使我們的程式具有平台獨立性,我們應該始終使用這些分隔符來創建文件路徑或讀取任何系統變數,如 PATH、CLASSPATH。以下是展示如何正確使用分隔符的程式碼片段。
// 沒有平台獨立性,適用於Unix系統
File fileUnsafe = new File("tmp/abc.txt");
//平台獨立且可在Unix和Windows系統上安全使用
File fileSafe = new File("tmp"+File.separator+"abc.txt");
這就是所有有關文件分隔符的內容,我們將在未來的帖子中了解更多有關java io的知識。