In der FileKlasse gibt es zwei Zeichenfolgen separatorund pathSeparator.
Was ist der Unterschied? Wann sollte ich eins über das andere verwenden?
In der FileKlasse gibt es zwei Zeichenfolgen separatorund pathSeparator.
Was ist der Unterschied? Wann sollte ich eins über das andere verwenden?
Antworten:
Wenn du meinst File.separatorund File.pathSeparatordann:
File.pathSeparatorwird verwendet, um einzelne Dateipfade in einer Liste von Dateipfaden zu trennen. Betrachten Sie unter Windows die Umgebungsvariable PATH. Sie verwenden a ;, um die Dateipfade so zu trennen, wie es unter Windows File.pathSeparatorder Fall wäre ;.
File.separatorwird entweder /oder \wird verwendet, um den Pfad zu einer bestimmten Datei aufzuteilen. Zum Beispiel unter Windows ist es \oderC:\Documents\Test
File.separatorsollte in File.fileSeparatorBezug aufFile.pathSeparator
File. Ich denke, der Dateiteil ist impliziert. Aber wer weiß, warum sie viel von dem gemacht haben, was sie mit Java gemacht haben.
Sie verwenden ein Trennzeichen, wenn Sie einen Dateipfad erstellen. In Unix ist das Trennzeichen also /. Wenn Sie also den Unix-Pfad erstellen /var/tempmöchten, gehen Sie folgendermaßen vor:
String path = File.separator + "var"+ File.separator + "temp"
Sie verwenden das, pathSeparatorwenn Sie mit einer Liste von Dateien wie in einem Klassenpfad arbeiten. Wenn Ihre App beispielsweise eine Liste von Gläsern als Argument verwendet hat, ist die Standardmethode zum Formatieren dieser Liste unter Unix:/path/to/jar1.jar:/path/to/jar2.jar:/path/to/jar3.jar
Bei einer Liste von Dateien würden Sie also Folgendes tun:
String listOfFiles = ...
String[] filePaths = listOfFiles.split(File.pathSeparator);
/var/tempdiesen File.separatorerstellen , ist die Verwendung nutzlos, da Sie bereits plattformabhängigen Code haben. Könnte auch den Pfad fest codieren.
java.io.FileKlasse enthält vier statische Trennvariablen. Zum besseren Verständnis lassen Sie uns mit Hilfe von Code verstehen
Beachten Sie, dass alle diese Variablen endgültig und systemabhängig sind.
Hier ist das Java-Programm zum Drucken dieser Trennvariablen. 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);
}
}
Ausgabe des obigen Programms auf dem Unix-System:
File.separator = /
File.separatorChar = /
File.pathSeparator = :
File.pathSeparatorChar = :
Ausgabe des Programms auf dem Windows-System:
File.separator = \
File.separatorChar = \
File.pathSeparator = ;
File.pathSeparatorChar = ;
Um unsere Programmplattform unabhängig zu machen, sollten wir immer diese Trennzeichen verwenden, um einen Dateipfad zu erstellen oder Systemvariablen wie PATH, CLASSPATH zu lesen.
Hier ist das Code-Snippet, das zeigt, wie Trennzeichen richtig verwendet werden.
//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");
Stringund, das charvon den oben genannten Methoden zurückgegeben wird, gibt den korrekt formatierten Backslash zurück (wenn unter Windows).