Elangovan
Contenido de First.properties
:
name=elango
country=india
phone=12345
Quiero cambiar country
de india
a america
. Este es mi código:
import java.io.*;
public class UpdateProperty
{
public static void main(String args[]) throws Exception
{
FileOutputStream out = new FileOutputStream("First.properties");
FileInputStream in = new FileInputStream("First.properties");
Properties props = new Properties();
props.load(in);
in.close();
props.setProperty("country", "america");
props.store(out, null);
out.close();
}
}
Contenido de salida de First.properties
:
country=america
Las demás propiedades se eliminan. Quiero actualizar un valor de propiedad en particular, sin eliminar las otras propiedades.
Vasyl Keretsman
Abra el flujo de salida y guarde las propiedades después de haber cerrado el flujo de entrada.
FileInputStream in = new FileInputStream("First.properties");
Properties props = new Properties();
props.load(in);
in.close();
FileOutputStream out = new FileOutputStream("First.properties");
props.setProperty("country", "america");
props.store(out, null);
out.close();
-
Gracias Vasyl Keretsman, cambio el código. ¿Es correcto? Props de propiedades = nuevas propiedades (); props.load(en); props.setProperty(“país”, “américa”); props.store(fuera, nulo); fuera.cerrar(); cercar(); pero la respuesta es la misma. no obtuve la respuesta esperada
– Elangovan
11 de marzo de 2013 a las 11:48
-
Incorrecto. He agregado el código a mi respuesta.
– Vasyl Keretsman
11 de marzo de 2013 a las 11:55
-
Gracias Vasyl Keretsman. Está funcionando ..
– Elangovan
11 de marzo de 2013 a las 12:07
-
@VasylKeretsman se eliminan todos los comentarios existentes en el archivo
– Paraneetharan Saravanaperumal
2 de julio de 2015 a las 9:17
-
¿Cómo se convirtió esto en la respuesta aceptada? Elimina todas las propiedades previamente establecidas.
– GuauBow
30 de septiembre de 2016 a las 0:26
AnirbanDebnath
Puedes usar Configuración de Apache Commons biblioteca. La mejor parte de esto es que ni siquiera arruinará el archivo de propiedades y lo mantendrá intacto (incluso los comentarios).
PropertiesConfiguration conf = new PropertiesConfiguration("propFile.properties");
conf.setProperty("key", "value");
conf.save();
-
Esta es una respuesta mucho mejor que la aceptada.
–Joe Hackerberg
16 de febrero de 2017 a las 14:19
-
@GOXR3PLUS Lo siento, no puedo probarlo en este momento, pero pensé que debería funcionar porque hay una anotación en el encabezado del sitio web donde puede ver: “Última publicación: 08 de febrero de 2017 | Versión: 2.1.1” Es bastante confuso, pero aún puede usar versiones anteriores. Desafortunadamente, no puedo ayudarte más con esto 🙁
–Joe Hackerberg
12 mayo 2017 a las 10:42
-
@JoséMª Yo había usado la versión 1.1. Además, la versión 2.1 tiene la
save()
método en él. commons.apache.org/proper/commons-configuration/apidocs/org/…– AnirbanDebnath
22 de mayo de 2017 a las 7:55
-
Hola @J.Doem: Puedes usar el Older
1.10 version
que tiene un constructor String args para pasar el nombre del archivo directamente. De lo contrario, para V2, puede usar elPropertyConfiguration
de claseloadIncludeFile(String fileName)
método para pasar el nombre del archivo.– AnirbanDebnath
20 de agosto de 2017 a las 8:22
-
Esta solución resolvió mis 2 problemas. 1. Guardar el archivo sin perder otros datos y también 2. Las posiciones de las teclas no se intercambian (al usar otras soluciones, es decir, con flujos de entrada y salida de archivos, las posiciones de las teclas se intercambian a posiciones aleatorias y también se eliminan los comentarios).
– Lakshmipathi G.
22 de marzo de 2022 a las 13:10
Properties prop = new Properties();
prop.load(...); // FileInputStream
prop.setProperty("key", "value");
prop.store(...); // FileOutputStream
Similar: stackoverflow.com/questions/7461901/… y stackoverflow.com/questions/565932/…
– Vadzim
30 de junio de 2017 a las 9:44