Открытие текстового файла с использованием относительного пути с Java (в Eclipse)

1

Я попытался открыть файл, используя относительный путь, так как мой файл находится в корневой папке моего проекта.

BufferedReader reader = new BufferedReader(new FileReader("text.h"));

Это не сработало.

Поэтому я напечатал рабочий каталог, но это приводит меня в каталог, в котором установлено eclipse.

 System.out.println(new File(".").getAbsolutePath());

Моя структура проекта:

Project
       --bin
       --core
           text.h
           --src
              text.h 
              --com
                 --home
                     --core
                         Main.java
                         text.h
       --editor
       --ui
       text.h

Я скопировал текстовый файл в разных местах, внутри каталога моего проекта, и я пробовал разные пути, но никто не работал.

Если я скопирую файл в каталог, где установлен Eclipse, я могу прочитать файл со следующим путем.

BufferedReader reader = new BufferedReader(new FileReader("text.h"));

Как я могу прочитать файл из корневой папки моего проекта?

  • 1
    используя "/" вы можете получить доступ к корневой папке. Покажите нам структуру вашего проекта.
  • 0
    System.getProperty ("user.dir") может показать вам ваш текущий рабочий каталог. Если этот путь находится где-то ниже вашего рабочего каталога, то вам, возможно, придется добавить немного ../ .. к конструктору файлов arg
Показать ещё 3 комментария
Теги:
relative-path

2 ответа

1
String workingDir = System.getProperty("user.dir");


BufferedReader reader = new BufferedReader(new FileReader(workingDir+"\text.h"));

Значение workingDir дает путь к текущему рабочему каталогу

попробуйте это, это может вам помочь

  • 0
    workingDir ведет меня в каталог, где установлено eclipse.
0
URL url = getClass().getProtectionDomain().getCodeSource().getLocation();
System.out.println("URL " + url.toExternalForm());

URL file:/D:/workspace/myproject/bin/

или когда jar нажал:

URL file:jar:/D:/workspace/myproject/bin/myproject.jar!/....
  • 0
    Разве мне не нужно вызывать функцию getClass () для объекта? Я пробовал URL url = Main.class.getClass (). GetProtectionDomain (). GetCodeSource (). GetLocation (), но я получаю исключение NullPointerException.
  • 0
    MainClass.class.getProtectionDomain()... конечно. ;) в противном случае Class.class .

Ещё вопросы

Сообщество Overcoder
Наверх
Меню