Não use FileInputStream, e sim Thread.currentThread().getContextClassloader().getResourceAsStream() (ou coisa parecida). Neste fórum isso foi respondido N vezes.
Re:Arquivo .properties em aplicações Web
3 Respostas
A melhor maneira de ser ler um resource .properties é essa:
//nome do arquivo sem extensão...
ResourceBundle rb = ResourceBundle.getBundle("nomedoarquivo");
segue a minha classe como exemplo…
package br.com.suapp.util;
import java.util.ResourceBundle;
/**
* Classe que recupera um par de chave / valor do arquivo de propriedades (gerprod.properties)
*/
public class Recurso {
private static Recurso recursoInstancia = new Recurso();
private static final ResourceBundle RB = ResourceBundle.getBundle("br.com.suapp.util.nomedoarquivo");
private Recurso(){
}
/**
* Obtém uma instância de Recurso (Singleton)
* @return Retorna uma instância da classe Recurso
* Por exemplo:
* <code>
* private static final Recurso recurso = Recurso.getInstance();
* recurso.getPropriedade("DATA_SOURCE_REFERENCE_MEUDB");
* </code>
*/
public static Recurso getInstance(){
return recursoInstancia;
}
/**
* Recupera o valor armazenado correspondente a chave informada
* @param chave que deseja recuperar o valor
* @return Retorna uma string com o valor encontrado no arquivo pad.properties
*/
public String getPropriedade(String chave) {
return RB.getString(chave);
}
}
Boa tarde!
Estou tentando ler um .properties em uma aplicação web. Segue trecho do código:
props = new Properties();
try {
file = new FileInputStream("arq.properties");
props.load(file);
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
Já tentei colocar o .properties em diversos lugares como em WEB-INF/classes/ mas mesmo assim continuo recebendo java.io.FileNotFoundException. Alguém tem alguma dica de como lidar com properties em aplicação web sem precisar colocar todo o caminho do arquivo?!
Valeu!
Opa! Desculpa, eu havia visto outras formas de fazê-lo no fórum! Esqueci de dizer que estou restrito a usar JDK 1.3!
Utilizando ResourceBundle funcionou! Valeu!