2012-02-17 28 views
5

Así que si lo hacemos así:¿Cómo guardar valores en propiedades sin eliminar claves no modificadas?

Properties props = new Properties(); 
OutputStream osr = new FileOutputStream(Store.class.getResource("my.properties").getFile()); 

props.setProperty("wallboard_text_rgb", "aaa"); 
props.setProperty("wallboard_back_rgb", "bbb"); 

props.store(osr, ""); 

otras claves en las propiedades existentes se eliminarán, la forma de evitar eso?

Respuesta

4

Cargue las propiedades de ese archivo antes de modificarlo. En otras palabras, en lugar de

Properties props = new Properties(); 

con

Properties props = Properties.load(new FileInputStream(Store.class.getResource("my.properties").getFile())); 
1

La solución más sencilla es utilizar

String filename = Store.class.getResource("my.properties").getFile(); 
OutputStream osr = new FileOutputStream(filename, true); // append. 

Si no desea mantener anexar al archivo, usted tiene que leer todos los valores existentes y volver a escribirlos. Lamentablemente, las propiedades no conservan el orden ni los comentarios, las líneas en blanco, etc.

Cuestiones relacionadas