Как мне получить доступ к текстовому файлу из моей войны

Как узнать, какую ссылку на файл использовать для получения файла из моего WAR.

Структура ВОЙНЫ:

WAR
src
- model
- web
build
WebContent
META-INF
WEB-INF
LIB

JSP находятся в WebContent, я поместил файл config.txt в папку WebContent и попытался добраться до него с помощью

BufferedReader in = new BufferedReader(new FileReader("WebContent/config.txt"));

Но это не работает. Кто-нибудь знает, какую ссылку мне нужно передать или как я могу это понять.


person Ankur    schedule 20.11.2009    source источник


Ответы (4)


Ознакомьтесь с ServletContext. получитьресурсаспоток(). Вот пример.

person Asaph    schedule 20.11.2009

Я думаю, просто удалите WebContent из пути при чтении файла, и это должно помочь.

person Kalpak    schedule 20.11.2009

Один из способов сделать это — с оговоркой, которую я объясню ниже. Вы должны сделать что-то вроде этого:

// In a Servlet
ServletContext sc = getServletContext();
BufferedReader in = 
    new BufferedReader(new FileReader(sc.getRealPath("WebContent/config.txt"));

Это предполагает, что ваш контейнер сервлетов настроен на развертывание файлов войны в соответствующую им структуру каталогов.

person Andy Gherna    schedule 20.11.2009
comment
Да, я использую Tomcat, и он делает расширение - person Ankur; 20.11.2009
comment
@Ankur: мой ответ вернулся. Я временно удалил его, чтобы исправить проблему, обнаруженную @ChssPly76. - person Asaph; 20.11.2009

Самый безопасный способ доступа к этому файлу должен быть примерно таким:

InputStream input = getClass().getClassLoader().getResourceAsStream("ваш/путь/введите/сюда");

person Kico Lobo    schedule 24.11.2009
comment
который работает для ресурсов в пути к классам, но веб-контент - нет. - person Yevgeniy; 12.11.2012