Java文件分隔符、separatorChar、路径分隔符、pathSeparatorChar

java.io.File 類包含四個靜態分隔符變數。這裡我們將學習它們以及何時使用它們。

  1. File.separator: 作為字串的平台相依型預設名稱分隔符。對於 Windows,它是 ‘\’,對於 Unix,它是 ‘/’。
  2. File.separatorChar: 與 separator 相同但它是字符。
  3. File.pathSeparator: 路徑分隔符的平台相依型變數。例如在 Unix 系統中,路徑或 CLASSPATH 變數的路徑列表由 ‘:’ 分隔,在 Windows 系統中則由 ‘;’ 分隔。
  4. 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的知識。

Source:
https://www.digitalocean.com/community/tutorials/java-file-separator-separatorchar-pathseparator-pathseparatorchar