Подтвердить что ты не робот

Чтение и запись в файл Java через ресурс

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

Это то, что я делаю

File f = new File(ClassLoader.getSystemResource("/blah/blah/Properties.prop").toURI());
BufferedReader br = new BufferedReader(new FileReader(f));
String line = br.readLine();

PrintWriter p = new PrintWriter(new File(ClassLoader.getSystemResource("/blah/blah/Properties.prop").toURI()));

но не кажется правильным. Каков правильный способ сделать это?

4b9b3361

Ответ 1

Попробуйте следующее:

     InputStreamReader isReader= 
                      new InputStreamReader(
                          this.getClass().getResourceAsStream(templateName));
      BufferedReader br = new BufferedReader(isReader);     

или

     InputStreamReader isReader= 
                      new InputStreamReader(
                          <youclassName>.class.getResourceAsStream(templateName));
      BufferedReader br = new BufferedReader(isReader);   

Для вывода выполните следующие действия:

      PrintWriter writer = 
               new PrintWriter(
                     new File(this.getClass().getResource(templateName).getPath());

Ответ 2

Все вышеприведенное решение показывает, как вы можете получить доступ к своим ресурсам в папке build. Это означает, что ресурсы были перемещены для создания каталога с файлами .class.
Если вам нужно записать некоторые файлы в ресурсы для их сохранения после завершенной программы, вам нужно будет описать путь, начинающийся с корневого проекта:

./SRC/главная/ресурсы/foo.ext

Это решение обычно не рекомендуется, но может потребоваться в других случаях.

Ответ 3

Проще говоря,

 try (BufferedReader bufferedReader = Files.newBufferedReader(Paths.get(Resources.getResource("path").toURI()))) {
        //bufferedReader...
    }
    try (BufferedWriter bufferedWriter = Files.newBufferedWriter(Paths.get(Resources.getResource("path").toURI()))) {
        //bufferedWriter...
    }

Обратите внимание, что путь относится к папке ресурсов.