2015-01-02 14 views

Trả lời

22

java.io.File lớp chứa bốn biến phân cách tĩnh. Để hiểu rõ hơn, hãy hiểu với sự trợ giúp của một số mã số

  1. dấu tách: Ký tự phân cách tên mặc định phụ thuộc nền tảng là Chuỗi. Đối với cửa sổ, đó là ‘\’ và để bỏ liên kết ‘/’
  2. dấu táchChar: Giống như dấu phân cách nhưng nó là số
  3. pathSeparator: Biến phụ thuộc nền tảng cho dấu tách đường. Đối với dụ PATH hoặc danh sách biến CLASSPATH đường dẫn cách nhau bởi ':' trong hệ thống Unix và ';' trong hệ thống Windows
  4. pathSeparatorChar: tương tự như PathSeparator nhưng nó char

Lưu ý rằng tất cả trong số này là chính thức biến và hệ thống phụ thuộc.

Đây là chương trình java để in các biến phân tách này. FileSeparator.java

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); 
    } 

} 

Output của chương trình trên trên hệ thống Unix:

File.separator =/
File.separatorChar =/
File.pathSeparator = : 
File.pathSeparatorChar = : 

Output của chương trình trên Windows hệ thống:

File.separator = \ 
File.separatorChar = \ 
File.pathSeparator = ; 
File.pathSeparatorChar = ; 

Để làm nền tảng chương trình của chúng tôi độc lập, chúng ta nên luôn sử dụng các dấu tách này để tạo đường dẫn tệp hoặc đọc bất kỳ biến hệ thống nào như PATH, CLASSPATH.

Dưới đây là đoạn mã cho biết cách sử dụng dấu phân cách chính xác.

//no platform independence, good for Unix systems 
File fileUnsafe = new File("tmp/abc.txt"); 
//platform independent and safe to use across Unix and Windows 
File fileSafe = new File("tmp"+File.separator+"abc.txt"); 
+1

đường dẫnSeparator là SO bỏ lỡ ... Tại sao không tạo đường dẫnVariableSeparator hoặc classpathSeparator? –

Các vấn đề liên quan