В File
классе есть две строки, separator
а pathSeparator
.
Какая разница? Когда я должен использовать один над другим?
java
file
path-separator
icnhzabot
источник
источник
Ответы:
Если вы имеете в виду,
File.separator
аFile.pathSeparator
затем:File.pathSeparator
используется для разделения отдельных путей к файлам в списке путей к файлам. Рассмотрим в Windows переменную среды PATH. Вы используете;
для разделения путей к файлам так, чтобы в WindowsFile.pathSeparator
было;
.File.separator
либо,/
либо\
используется для разделения пути к определенному файлу. Например, в Windows это\
илиC:\Documents\Test
источник
File.separator
должно быть вFile.fileSeparator
отношенииFile.pathSeparator
File
. Я думаю, что часть файла подразумевается. Но кто знает, почему они сделали многое из того, что сделали с Java.Вы используете разделитель при создании пути к файлу. Так что в Unix разделитель есть
/
. Так что, если вы хотите построить путь Unix,/var/temp
вы бы сделали это так:Вы используете,
pathSeparator
когда имеете дело со списком файлов, как в пути к классам. Например, если ваше приложение приняло список jar-файлов в качестве аргумента, стандартный способ форматирования этого списка в unix:/path/to/jar1.jar:/path/to/jar2.jar:/path/to/jar3.jar
Итак, учитывая список файлов, вы бы сделали что-то вроде этого:
источник
/var/temp
то использовать его бесполезно,File.separator
поскольку у вас уже есть зависимый от платформы код. Можно также жестко закодировать путь.java.io.File
класс содержит четыре статических переменных-разделителя. Для лучшего понимания давайте разберемся с помощью некоторого кодаОбратите внимание, что все они являются конечными переменными и зависят от системы.
Вот Java-программа для печати этих переменных-разделителей. FileSeparator.java
Вывод вышеуказанной программы в систему Unix:
Вывод программы на систему Windows:
Чтобы сделать нашу программную платформу независимой, мы всегда должны использовать эти разделители для создания пути к файлу или чтения любых системных переменных, таких как PATH, CLASSPATH.
Вот фрагмент кода, показывающий, как правильно использовать разделители.
источник
String
Иchar
возвращенным выше способов сделать возвращают правильно отформатированный обратную косую черту (если на Windows).