Чтение из файла с Maven
Я пытаюсь создать очень маленькую программу с MAVEN, которая читает из файла, но я явно делаю что-то не так, потому что это дает мне FileNotFoundException.
Вот как выглядит моя структура каталогов:
my-app
src
main|
|
|--java|
| |
| Main.java
|
|--resources|
|
res.txt
Файл res.txt содержит несколько строк, которые я хотел бы прочитать из Main.java
...
File file = new File("res.txt");
FileReader fr= new FileReader(file);
BufferedReader br = new BufferedReader( fr);
...
Я скомпилирую его с: C:\my-app mvn package
Создает банку под целью. Когда я заглядываю внутрь банку, я вижу, что он содержит Main.class и res.text рядом друг с другом(в том же каталоге)
Тем не менее, когда я пытаюсь запустить его:
java -cp target / my-app-1.0-SNAPSHOT.jar Main
Я даю свое FileNotFoundException, Main.class как-то не видит файл res.txt. Зачем? Где я должен положить res.txt? Что еще я должен настроить?
Любая помощь будет очень ценна.
3 ответа
Я предполагаю, что файл.txt копируется в целевую папку и часть файла JAR?
В этом случае используйте загрузчик ресурсов для извлечения его из пути к классам, а не из файловой системы.
см. чтение файла в classpath для некоторых примеров, как загрузить файлы.
InputStream TokenStream = this.getClass(). GetResourceAsStream ("/ files / Token.xlsx");
XSSFWorkbook wb = new XSSFWorkbook (TokenStream);
XSSFSheet sheet = wb.getSheetAt (0);
Это работает для чтения файла Excel
Вы можете попробовать с
File file = new File(this.getClass().getResource("/res.txt").getFile());
или даже
File file = new File(this.getClass().getResource("/res.txt").toURI());