Не удается получить доступ к файлам из src/main/resources через тестовый файл

У меня есть file.dat в src/main/resources.

Когда я пытаюсь проверить класс, который загружает этот файл через файл jar, тест терпит неудачу, потому что он не может найти файл в пути (I/O Exception). Путь, который я получаю через тест:

/home/usr/workspace/project/target/test-classes/file.dat

но файл не существует в target/test-classes любой идее?

Ответ 1

Файлы из src/main/resources будут доступны в пути к классам во время выполнения основной программы, тогда как файлы из src/main/resources и src/test/resources будут доступны в пути к классам во время тестовых прогонов.

Один из способов получить файлы, находящиеся в пути к классам:

Object content = Thread.currentThread().getContextClassLoader().getResource("file.dat").getContent();

.. где тип content зависит от содержимого файла. Вы также можете получить файл как InputStream:

InputStream contentStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("file.dat");

Ответ 2

Если файл находится в

SRC/главная/ресурсы/file.dat

Вы можете получить URL-адрес файла:

GetClass() getResource ( "/file.dat" );.