#java
#java #файловые системы
Вопрос:
Итак, я создал приложение, которое выполняет некоторое чтение / запись в файлы. Я хочу сделать обход пути независимым от операционной системы.
Разные операционные системы используют разные символы в качестве разделителей файлов. Например, системы Microsoft Windows используют ""
, а системы UNIX используют "/"
. Когда приложения должны выполняться на разных платформах, использование жестко запрограммированных разделителей файлов может привести к неправильному выполнению логики приложения.
Итак, я придумал использовать двойную косую черту назад '\'
. Но теперь я пришел к тому, что могу использовать
public static final String FILE_SEPARATOR = System.getProperty("file.separator");
public static final String PATH_SEPARATOR = System.getProperty("path.separator");
ссылка здесь http://www.javapractices.com/topic/TopicAction.do?Id=38 .
Я ошибаюсь? Каков правильный способ?
Комментарии:
1. Windows понимает /, но Unix-подобные системы не понимают \ , поэтому, если вы вообще должны использовать / не \ .
Ответ №1:
Один из простых способов — использовать File.separator
разделитель между именами путей и File.pathSeparator
разделитель между путями. Они идентичны свойствам "file.separator"
и "path.separator"
.
System.getProperty("file.separator")
вернет «/» в UNIX и «» в Windows.
System.getProperty("path.separator")
вернет «:» в UNIX и «;» в Windows.
Вы можете проверить http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html .
Комментарии:
1. Мой вопрос заключается в том, что использование ‘\’ или File.seperator одинаковы или есть разница. Если есть разница, какой способ лучше?
2. Использование File.separator лучше, поскольку он преобразуется в правильный символ в зависимости от ОС, а не просто жестко кодирует разделитель.
Ответ №2:
В Java в зависимости от того, на какой системе выполняется ваша программа, разделитель может отличаться.
Например, в файловой системе Linux это разделитель ‘/’.
В файловой системе Windows это разделитель ».
Поэтому, если вы используете File.separator, вы будете уверены, что будет использован правильный разделитель, и никаких проблем не возникнет.