Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
03 Фев 2023
2 мин
1523

Загрузка файла из ресурсной папки в Java

Во время работы с Java-проектами, особенно с Maven, часто возникает необходимость загрузить файл, расположенный в ресурсной папки. Например, это может быть

Во время работы с Java-проектами, особенно с Maven, часто возникает необходимость загрузить файл, расположенный в ресурсной папки. Например, это может быть файл с настройками, образцы данных для тестирования или что-нибудь ещё.

Структура проекта может выглядеть примерно так:

/src/main/java/
/src/main/resources/
/src/test/java/
/src/test/resources/

Если в папке /src/test/resources/ есть файл test.csv, который необходимо загрузить во время выполнения теста, расположенного в /src/test/java/MyTest.java, возникает вопрос: как это сделать правильно?

Неправильные подходы

Одна из распространённых ошибок — попытка загрузить файл напрямую, как обычно:

BufferedReader br = new BufferedReader(new FileReader("test.csv"));

Этот подход не сработает, так как путь до файла указан неправильно. Java попытается найти файл в корневой директории проекта, а не в папке ресурсов.

Другой неработающий подход — попытаться загрузить ресурс через класс:

InputStream is = MyTest.class.getResourceAsStream("test.csv");

В этом случае Java попытается найти файл в той же пакетной структуре, что и класс MyTest, что тоже не является правильным путём до файла.

Правильный подход

Чтобы загрузить файл из ресурсной папки, нужно использовать метод Class#getResourceAsStream(String), указав путь до файла относительно ресурсной папки:

InputStream is = MyTest.class.getResourceAsStream("/test.csv");

В этом случае / в начале пути говорит Java о том, что нужно искать файл относительно корневой папки ресурсов, а не относительно структуры пакетов.

Итак, подведём итог: для загрузки файлов из ресурсной папки в Java нужно использовать метод getResourceAsStream(String), указывая путь до файла относительно корневой папки ресурсов.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий