Доступ к внешним файлам в приложениях Java в операционных системах Windows и Linux - PullRequest
2 голосов
/ 10 января 2011

Пожалуйста, я столкнулся со следующей проблемой:

Во всей моей Java-программе я обращаюсь к некоторым файлам, которые, похоже, обращаются в Windows по-другому, чем в Linux.Например, если бы я хотел получить доступ к следующему файлу в той же папке, что и проект, я написал бы следующее:

Под Linux: File Operations_File = new File("Data/Operations.txt");
Под Windows: File Operations_File = new File("Data\\Operations.txt");

Мне понадобится стандартная методология, которая работает во всех операционных системах (или, по крайней мере, в этих двух).Поскольку кодирование двух версий моего кода совсем не элегантно.

Мои две операционные системы, на которых я работаю: Linux Mint 9 и Windows XP.Я использовал NetBeans 6.9.1 на протяжении всего проекта.

Ваша помощь очень важна!

Ответы [ 2 ]

4 голосов
/ 10 января 2011

File.separator именно для этого.

Файл f = новый файл («Данные» + File.separator + «Operations.txt»);

Не путайте с File.pathSeparator, который используется для разделения путейдруг с другом.Например:

/ usr / local / lib: / usr / lib: / var / lib

В приведенном выше примере: является разделителем пути (windows использует; для разделителей пути).

2 голосов
/ 10 января 2011

Вы также можете создать File, представляющий каталог, и другой File, представляющий что-то в этом каталоге, например:

File dataDir = new File("Data");
File operationsFile = new File(dataDir, "Operations.txt");

Вы также можете пропустить File для каталога и просто сделать это:

File operationsFile = new File("Data", "Operations.txt");

Под Windows при печати operationsFile выдается Data\Operations.txt, как и ожидалось.

...