
Hemos visto varios ejemplos sobre cómo leer el contenido de unos Properties o cómo modificar el contenido de unos Properties. Pero, qué tenemos que hacer si una vez modificados queremos guardarlos en el fichero. Ya que la modificación solo se aplica al tiempo de vida de la ejecución del programa Java.
Veamos ahora como podemos guardar unos Properties con Java. Lo primero será definir unos Properties mediante la clase Properties. Los vamos a generar vía código, aunque podíamos haberlos leído de un fichero.
Properties prop = new Properties();
prop.setProperty("nombre","Linea de Código");
prop.setProperty("url","https://lineadecodigo.com");
El siguiente paso será definir el fichero el cual queremos guardar los Properties. Y como todo manejo de ficheros deberemos de abrirle un FileOutputStream.
FileOutputStream os = FileOutputStream("fichero.prop");
Ahora va lo más importante, y es que dentro de Properties tenemos el método .store() el cual persistirá los datos sobre un FileOutputStream que le pasemos como parámetro. Curiosamente el que acabamos de crear.
prop.store(os, "Fichero de Propiedades de la Web");
Una de las cosas que tienes que tener en cuenta es que en los manejos de stream puede saltar siempre la IOException. Así que nos crearemos nuestro bloque try-catch.
FileOutputStream os = null;
try {
os=new FileOutputStream("fichero.prop");
prop.store(os, "Fichero de Propiedades de la Web");
} catch(IOException ioe) {ioe.printStackTrace();}
Juan Sebastián Ocampo Ospina
Buen día, en la sentencia
FileOutputStream os = FileOutputStream(«fichero.prop»);
Hace falta la palabra new para crear el objeto de la clase FileOutputStream. Saludos y gracias por el post.
Víctor Cuervo
@German,
¿Qué significa el que te desordena todas las líneas?
German
Hola!!
Tengo un problema, me desordena todas las lineas!! Ojala me peudas ayudar.
Víctor Cuervo
@Novato,
¡Qué raro! Si no existe el fichero lo crea y si existe lo machaca.
¿Qué error te sale? A ver si podemos ayudarte.
Novato
A mí esta línea me da error en el segundo FileOutStream:
FileOutputStream os = FileOutputStream(«fichero.prop»);
ANONIMO
debe ser FileOutputStream os = new FileOutputStream(“fichero.prop”); le falta el new