W File
klasie są dwa ciągi, separator
i pathSeparator
.
Co za różnica? Kiedy powinienem używać jednego na drugim?
java
file
path-separator
icnhzabot
źródło
źródło
Odpowiedzi:
Jeśli masz na myśli,
File.separator
aFile.pathSeparator
następnie:File.pathSeparator
służy do oddzielania poszczególnych ścieżek plików na liście ścieżek plików. Rozważ w systemie Windows zmienną środowiskową PATH. Używasz;
oddzielić ścieżki plików więc na WindowsFile.pathSeparator
będzie;
.File.separator
jest albo/
albo\
, który jest używany do dzielenia się ścieżkę do pliku określonego. Na przykład w systemie Windows jest to\
lubC:\Documents\Test
źródło
File.separator
należyFile.fileSeparator
regardingFile.pathSeparator
File
. Myślę, że sugerowana jest część pliku. Ale kto wie, dlaczego zrobili wiele z tego, co zrobili z Javą.Podczas budowania ścieżki do pliku używasz separatora. Tak więc w unixie separatorem jest
/
. Więc jeśli chcesz zbudować ścieżkę uniksową/var/temp
, zrobiłbyś to w ten sposób:Korzystasz z tego,
pathSeparator
gdy masz do czynienia z listą plików, takich jak ścieżka klasy. Na przykład, jeśli Twoja aplikacja jako argument przyjęła listę słoików, standardowym sposobem formatowania tej listy w systemie Unix jest:/path/to/jar1.jar:/path/to/jar2.jar:/path/to/jar3.jar
Biorąc pod uwagę listę plików, zrobiłbyś coś takiego:
źródło
/var/temp
że jest to bezużyteczne,File.separator
ponieważ masz już kod zależny od platformy. Równie dobrze może zakodować ścieżkę.java.io.File
klasa zawiera cztery statyczne zmienne separujące. Aby lepiej zrozumieć, zrozummy za pomocą jakiegoś koduZauważ, że wszystkie są zmiennymi końcowymi i zależą od systemu.
Oto program Java do drukowania tych zmiennych separatora. FileSeparator.java
Wyjście powyższego programu w systemie Unix:
Dane wyjściowe programu w systemie Windows:
Aby nasza platforma programu była niezależna, zawsze powinniśmy używać tych separatorów do tworzenia ścieżki do pliku lub odczytywania dowolnych zmiennych systemowych, takich jak PATH, CLASSPATH.
Oto fragment kodu pokazujący, jak poprawnie używać separatorów.
źródło
String
Ichar
zwrócony przez wyżej wymienionych metod nie zwróci prawidłowo sformatowany odwrotny ukośnik (jeśli w systemie Windows).