Чтение и запись в файл 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()));
но не кажется правильным. Каков правильный способ сделать это?
Ответы
Ответ 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...
}
Обратите внимание, что путь относится к папке ресурсов.