Meu sistema gera um arquivo .properties para armazenar as configurações do sistema de cada terminal localmente…
até aí tudo bem…
Um Ex da utilização…
Quando o sistema inicia, o sistema acessa esse arquivo, para saber qual terminal que ele é, o endereço do banco, end. do driver, senha do banco, etc. Neste arquivo, eu pus uma criptografia na hora de ler e gravar…Assim ele le a propriedade, descriptografa ela, interpreta e se caso prescise gravar alguma propriedade, ele gera a propriedade, criptografa e grava no arquivo… Até aí tudo bem…
o problema é o seguinte…
Esse sistema está rodando em vários terminais, mais ou menos uns 15. E de vez enquando, ao ler o arquivo, dá um erro, tipo uma vez a cada dois meses… parece que o arquivo corrompe… alguém já passou por isso…será que estou fazendo algo de errado para ler o arquivo…tipo…deixando aberto ou algo assim…para dar pau no arquivo de vez enquando?
Um exemplo de um método que eu uso
/**
* Seta as configurações no arquivo de propriedades
* Retorna true se gravou e false de deu erro
*/
//CriptProperties é uma classe extendida de Properties que somente criptografa e descriptografa informações antes de setar as //propriedades.. Pode-se interpretar como uma classe Properties
public boolean setConfiguracao(CriptProperties p){
try {
//arquivo é uma variável global do tipo File que contém o endereçamento do arquivo de configuração
if (!arquivo.exists()) {
if (arquivo.createNewFile()) {
p.store(new FileOutputStream(arquivo),"Configuração extra do sistema.");
} else {
log.error("Erro ao gravar o arquivo de propriedades");
return false;
}
}else{
p.store(new FileOutputStream(arquivo),"Configuração extra do sistema.");
}
} catch (Exception ex) {
log.error("Erro ao gravar o arquivo de propriedades", ex);
return false;
}
return true;
}
será que o problema está no new FileOutputStream que fica sempre aberto?