Seguinte pessoas…sinto que estou fazendo isso errado mas os tutoriais e exemplos que achei não me ajudam muito…
Tava querendo fazer um método para atribuir valores para um properties dinamicamente…
meu método ficou assim e está me retornando java.io.FileNotFoundException…
o método:
public static void setProperty(String chave, String valor) throws IOException {
Properties propriedades = new Properties();
try {
propriedades.load(new FileInputStream("erros.properties"));
propriedades.setProperty(chave, valor);
propriedades.store(new FileOutputStream("erros.properties"), null);
} catch (IOException ex) {
ex.printStackTrace();
}
}
erros.properties está na mesma pasta que o .java da Classe
Valeu…
Usando o path desta maneira você indica que o arquivo está localizado na pasta principal do projeto, e não na pasta da classe, coloque o arquivo na pasta root do projeto que deve funcionar.
package br.com;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.util.Properties;
public class Parametros extends Properties{
private static final long serialVersionUID = 1L;
private File file = new File("Parametros.properties");
public Parametros() {
super();
if(! file.exists()){
try {
file.createNewFile();
Properties defaults = this.loadParametros();
defaults.setProperty("nome", "nomeDefault");
defaults.setProperty("port", "12345");
defaults.setProperty("host", "localhost");
this.storeParametros(defaults);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public Parametros(Properties defaults) {
super(defaults);
}
public Properties loadParametros() throws FileNotFoundException, IOException{
Properties props = new Properties();
props.load(new FileInputStream(file));
return props;
}
public void storeParametros(Properties propertie) throws IOException{
FileOutputStream out = new FileOutputStream(file);
propertie.store(out, null);
out.close();
}
}
Opa…era um problema no path mesmo…a aplicação estava procurando o arquivo na pasta do eclipse (lol)…
eu substitui a linha por:
FileInputStream("C:/Documents and Settings/...")
o problema agora é achar uma maneira melhor de especificar o Path do arquivo…