IntelliJ: как скопировать ресурсы, такие как текстовые файлы и изображения, в путь сборки? - PullRequest
0 голосов
/ 01 мая 2020

Я впервые пишу небольшое приложение на javafx , используя IntelliJ . У меня проблема в том, что, хотя мой текстовый файл и изображения находятся в том же пространстве имен, что и файл Controller. java, при запуске приложения все равно появляется сообщение об ошибке, что файлы не могут быть найдены.

try (BufferedReader reader = new BufferedReader(new FileReader("bookList.txt")))
{
   //code here...
}
catch (FileNotFoundException e) {
  e.printStackTrace();
} catch (IOException e) {
  e.printStackTrace();
}

это для изображения

Image image = new  
           Image(getClass().getResourceAsStream("images/book1.jpg"));
ImageView imageView = new ImageView(image);

Вот структура файлов

enter image description here

После прочтения некоторые вопросы / ответы, похоже, проблема связана с тем, что ресурсы не копируются в путь вывода.

В Visual Studio все, что вам нужно сделать, это щелкнуть правой кнопкой мыши файл и выбрать «». Копировать в выходной каталог: Всегда | Если новее"

Как скопировать текстовые файлы и / или изображения в путь вывода в java / IntelliJ ?

Спасибо за помощь

1 Ответ

2 голосов
/ 01 мая 2020

Если вы используете путь: щелкните правой кнопкой мыши по исходному файлу> copy> Path from content Root: Результат:

BufferedReader reader = new BufferedReader(new 
    FileReader("src\\sample\\bookList.txt"))

Если вы используете URL, URL начинается с sr c, в данном случае:

Image image = new
            Image(getClass().getResourceAsStream("/sample/images/book1.jpg"));

В идеале вы должны использовать URL для BufferedReader:

String fileName = "/sample/bookList.txt";
InputStream is = getClass().getResourceAsStream(fileName);
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...