Где добавить текстовый файл в качестве ресурса в веб-приложении Java при использовании Netbeans?

Я хочу добавить текстовый файл в качестве ресурса в веб-приложении Java. Я использую Netbeans в качестве IDE.
Я хочу сохранить файл в папке, чтобы я мог непосредственно ссылаться на файл, а не на путь ABSOLUTE.

FileInputStream fstream = new FileInputStream("resource.txt");

Где хранить этот файл в папке?

1 ответ

Решение

Использование относительных путей к файлам является плохой идеей, так как они зависят от текущего рабочего каталога (текущего открытого каталога при запуске приложения Java), и вы не можете контролировать текущий рабочий каталог из приложения Java.

Вы должны просто поместить его в classpath и получить его из classpath:

InputStream input = Thread.currentThread().getContextClassLoader().getResourceAsStream("resource.txt");
// ...

В приведенном выше примере предполагается, что файл находится в корневом каталоге classpath. Если это, например, в пакете com.example.resourcesтогда вы должны получить его следующим образом:

InputStream input = Thread.currentThread().getContextClassLoader().getResourceAsStream("com/example/resources/resource.txt");
// ...

Если файл должен быть редактируемым, вам следует использовать абсолютный путь к файловой системе диска и правильно документировать его в руководстве по установке вашего веб-приложения. Альтернативой является использование базы данных.

Смотрите также:

Другие вопросы по тегам