Я пытаюсь прочитать файл за пределами моего текущего рабочего каталога с использованием классов File
и URL
на Java. Я знаю, что текущий рабочий каталог «представлен» по умолчанию .
.Как получить абсолютный путь к файлам за пределами текущего рабочего каталога [java]
Предполагая, что мой класс Java находится под /folders/Desktop/MyClass.java
, если я хочу, чтобы прочитать файл file1.txt
в /folders/Desktop/file1.txt
, я могу сделать следующее:
URL url = getClass().getResource("./file1.txt"); /* or "./anotherFolder/../file1.txt", or simply "file1.txt"*/
File f = new File(url.getPath());
и все работает, как ожидалось.
Но что мне делать, чтобы прочитать файл, который находится внутри текущего рабочего каталога и который не находится в его подкаталоге? Например, если путь файла равен /folders/file1.txt
? Я искал везде, но ничего не могу найти. Я пробовал ../file1.txt
, ./../file1.txt
и другие, но ничего не работает. Возможно, я что-то пропустил, или, может быть, я не искал в нужных местах.
что случилось с новым FIle ("/ folders/file1.txt")? – Turo
Нет ничего плохого в этой инструкции, она работает в моем случае. Проблема возникает, когда я хочу читать файлы, которые не находятся в подкаталогах текущего рабочего каталога. В частности, java.lang.NullPointerException бросается, когда я пытаюсь создать экземпляр класса File. – Process0
Я имею в виду не использовать ресурс, просто новый файл (имя файла). Файл может быть в любом месте, пока путь правильный. Как он может бросать NPE, когда имя файла не равно нулю? – Turo