Olá pessoal,
Exite uma maneira menos trabalhosa de alterar um arquivo propertie sem tem que regravar todas as propriedades existentes?
Vou explicar melhor:
Estou utilizando um arquivo de propriedades para configurar uma aplicação. No entanto, caso o usuário faça alguma alteração ao gravar no arquivo propertie tenho que gravar todas as linhas novamente. Ou seja, para não perder o que já tinha sido gravado anteriormente, peciso ler toas as pripriedades e guardá-las alterar o que for necessário e gravá-las novamente.
um exemplo:
Properties properties = new Properties();
//uma das configurações
properties.setProperty(“vendedor”, vendedor);
properties.store(new FileOutputStream(“config.properties”), “Configurações”);
Você pode ler o arquivo e alterar apenas uma propriedade sem mexer nas demais. Isso não quer dizer que vai perder as outras quando regravar o arquivo. O conteúdo do arquivo está em memória até você regravar e fechar o arquivo (.close()).
Poderia me dá um exemplo? Pois fiz o teste e ele apaga as proriedades que eu não alterei.
//metodo para gravar a configuracao do vendedor
private void setConfigVendedor(String vendedor){
try{
FileOutputStream file = new FileOutputStream(“config.properties”);
Properties properties = new Properties();
properties.setProperty(“vendedor”, vendedor); //properties.put(“vendedor”, vendedor);
properties.store(file, “Configurações”);
JOptionPane.showMessageDialog(null,“Configuração gravada com sucesso”, “Sucesso”, 0, icon);
file.close();
}catch(IOException e){
JOptionPane.showMessageDialog(null, “Não foi possível gravar ‘‘config.properties’’\n”,“Exception”,JOptionPane.ERROR_MESSAGE);
}
}
nesse caso queria alterar somente a configuração do nome do vendedor, mas apaga todo o restante das propriedades ficando somente o nome do vendedor no arquivo
[quote=Aldeir]Poderia me dá um exemplo? Pois fiz o teste e ele apaga as proriedades que eu não alterei.
//metodo para gravar a configuracao do vendedor
private void setConfigVendedor(String vendedor){
try{
FileOutputStream file = new FileOutputStream(“config.properties”);
Properties properties = new Properties();
properties.setProperty(“vendedor”, vendedor); //properties.put(“vendedor”, vendedor);
properties.store(file, “Configurações”);
JOptionPane.showMessageDialog(null,“Configuração gravada com sucesso”, “Sucesso”, 0, icon);
file.close();
}catch(IOException e){
JOptionPane.showMessageDialog(null, “Não foi possível gravar ‘‘config.properties’’\n”,“Exception”,JOptionPane.ERROR_MESSAGE);
}
}
nesse caso queria alterar somente a configuração do nome do vendedor, mas apaga todo o restante das propriedades ficando somente o nome do vendedor no arquivo[/quote]
Coloque seus codigos entre a tag CODE aqui no forum
Vc pode recuperar a chave=valor do Properties, altera-la q ele somente vai fazer a alteração mantendo o restante.
Uma opcao aos properties seria o Preferences, de uma pesquisada é sempre bom ter alternativas.