Trong Filelớp có hai chuỗi, separatorvà pathSeparator.
Có gì khác biệt? Khi nào tôi nên sử dụng cái này hơn cái kia?
Trong Filelớp có hai chuỗi, separatorvà pathSeparator.
Có gì khác biệt? Khi nào tôi nên sử dụng cái này hơn cái kia?
Câu trả lời:
Nếu bạn có ý File.separatorvà File.pathSeparatorsau đó:
File.pathSeparatorđược sử dụng để phân tách các đường dẫn tệp riêng lẻ trong một danh sách các đường dẫn tệp. Xem xét trên các cửa sổ, biến môi trường PATH. Bạn sử dụng một ;để tách các đường dẫn tập tin để trên Windows File.pathSeparatorsẽ ;.
File.separatorlà /hoặc \được sử dụng để phân chia đường dẫn đến một tệp cụ thể. Ví dụ trên Windows, nó là \hoặcC:\Documents\Test 
File.separatornên File.fileSeparatorliên quan đếnFile.pathSeparator
                    File. Tôi nghĩ rằng phần tập tin được ngụ ý. Nhưng ai biết tại sao họ đã làm rất nhiều những gì họ đã làm với Java.
                    Bạn sử dụng dấu phân cách khi bạn đang xây dựng đường dẫn tệp. Vì vậy, trong unix phân cách là /. Vì vậy, nếu bạn muốn xây dựng đường dẫn unix, /var/tempbạn sẽ làm như thế này:
String path = File.separator + "var"+ File.separator + "temp"Bạn sử dụng pathSeparatorkhi bạn đang xử lý một danh sách các tệp như trong đường dẫn lớp. Ví dụ: nếu ứng dụng của bạn lấy danh sách các lọ làm đối số thì cách tiêu chuẩn để định dạng danh sách đó trên unix là:/path/to/jar1.jar:/path/to/jar2.jar:/path/to/jar3.jar
Vì vậy, đưa ra một danh sách các tập tin bạn sẽ làm một cái gì đó như thế này:
String listOfFiles = ...
String[] filePaths = listOfFiles.split(File.pathSeparator);/var/tempthì sẽ vô dụng File.separatorkhi bạn sử dụng mã phụ thuộc vào nền tảng. Cũng có thể hardcode đường dẫn.
                    java.io.Filelớp chứa bốn biến phân tách tĩnh. Để hiểu rõ hơn, chúng ta hãy hiểu với sự giúp đỡ của một số mã
Lưu ý rằng tất cả những điều này là các biến cuối cùng và phụ thuộc hệ thống.
Đây là chương trình java để in các biến phân cách này. FileSpayator.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);
    }
}Đầu ra của chương trình trên trên hệ thống Unix:
File.separator = /
File.separatorChar = /
File.pathSeparator = :
File.pathSeparatorChar = :Đầu ra của chương trình trên hệ thống Windows:
File.separator = \
File.separatorChar = \
File.pathSeparator = ;
File.pathSeparatorChar = ;Để làm cho nền tảng chương trình của chúng tôi độc lập, chúng ta nên luôn luôn sử dụng các dấu phân cá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.
Đây là đoạn mã chỉ ra 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");Stringvà charcác phương thức được trả lại ở trên trả về dấu gạch chéo ngược được định dạng đúng (nếu trên Windows).