Ler arquivo texto

Boa tarde pessoal,

Tenho uma aplicação que pega dados de um arquivo texto(um properties na verdade) e utiliza os dados em alguns métodos. Pois bem, quando rodo a aplicação pelo Eclipse funciona tudo bem, mas trata-se de uma web application então eu gero um .war da minha aplicação e faço o deploy no Tomcat, mas aí então a minha aplicação não encontra o meu arquivo, que está no mesmo .war da aplicação. Como posso resolver isso? Passando o caminho de um diretório do computador funciona, mas preciso que a aplicação seja capaz de ler o arquivo que a acompanha.
Eu dei uma olhada pelo método System.getProperty(“user.dir”) e ele aponta para a raiz do meu Tomcat, como posso fazer para setar esse caminho para o mesmo path da minha aplicação?

Um abraço!

Se você precisa só ler o tal do arquivo, use getClass().getClassLoader().getResourceAsStream(), que ele lhe retorna um InputStream. Esse InputStream pode ser passado diretamente para Properties.load(), ou então ser lido linha a linha por um InputStreamReader.

O argumento de “getResourceAsStream” é um path relativo à sua aplicação. Por exemplo, um arquivo poderia ficar em “WEB-INF/classes/resources/dados.properties” e você poderia passar o path “/resources/dados.properties” para getResourceAsStream.

Não se esqueça de fechar a stream que você obteve com getResourceAsStream. Embora ela seja “read-only” ela não se fecha sozinha.

[quote=cbsj]Boa tarde pessoal,

Tenho uma aplicação que pega dados de um arquivo texto(um properties na verdade) e utiliza os dados em alguns métodos. Pois bem, quando rodo a aplicação pelo Eclipse funciona tudo bem, mas trata-se de uma web application então eu gero um .war da minha aplicação e faço o deploy no Tomcat, mas aí então a minha aplicação não encontra o meu arquivo, que está no mesmo .war da aplicação. Como posso resolver isso? Passando o caminho de um diretório do computador funciona, mas preciso que a aplicação seja capaz de ler o arquivo que a acompanha.
Eu dei uma olhada pelo método System.getProperty(“user.dir”) e ele aponta para a raiz do meu Tomcat, como posso fazer para setar esse caminho para o mesmo path da minha aplicação?

Um abraço![/quote]

Já tentou criar uma tag no web.xml do tomcat ?
Veja se seu web.xml que está dentro do Eclipse é o mesmo do tomcat…
Talvez seja isso…

Valeu pessoal!! Funcionou, utilizei o getResourceAsStream e deu certo! Obrigado pela ajuda! :smiley: