viernes, 29 de agosto de 2008

Uso de la clase java.util.Properties

Esta clase representa un conjunto de propiedades persistentes.

Cuando usamos esta clase pueden ocurrir las siguientes excepciones:
java.io.FileNotFoundException: no se encuentra el archivo
java.io.IOException: ocurrió un problema al leer el archivo

Crear el archivo de propiedades

Para indicar las propiedades se usa la forma nombre=valor, si quisieramos escribir la propiedad en dos lineas tendriamos que usar el simbolo '\'. Los comentarios inician con #.

Para nuestro ejemplo crearemos el archivo propiedades.txt con el siguiente contenido:

# esto es un comentario
edad=15
nombre=Pedro \
Gómez

Para escribir #, !, =, : tienen que estar precedidos por un backslash (\).

Lectura de Propiedades

Para leer una a una las propiedades se hace lo siguiente:

try{
//creamos el objeto para almacenar las propiedades
Properties p = new Properties();
//cargamos el archivo
p.load(new FileInputStream("propiedades.txt"));
//obtenemos las propiedades
System.out.println("nombre = " + p.getProperty("nombre"));
System.out.println("edad = " + p.getProperty("edad"));
}
catch (Exception e) {
System.out.println(e);
}

Recorrido de las propiedades

Para leer todas las propiedades se hace lo siguiente:

try {
//creamos el objeto para almacenar las propiedades
Properties p = new Properties();
//cargamos propiedades, de esta forma podremos añadir y modificar las propiedades de este archivo
p.load(new FileInputStream("propiedades.txt"));
//obtenemos una enumeracion con los nombres de las propiedades
Enumeration propiedades=p.propertyNames();
//hacemos un ciclo para obtener todas las propiedades
while (propiedades.hasMoreElements()){
String propiedad=(String)(propiedades.nextElement())
System.out.println ( propiedad + "= " + p.getProperty(propiedad));
}
}

catch (Exception ex){
System.out.println(ex);
}

El método propertyNames() devuelve una enumeracion con los nombres de las propiedades.
El método nextElement() nos devuelve un objeto diferente la enumeracion en cada iteración del ciclo.

Escritura de Propiedades

try{
//creamos el objeto para almacenar las propiedades
Properties p = new Properties();
//cargamos propiedades, de esta forma podremos añadir y modificar las propiedades de este archivo
p.load(new FileInputStream("propiedades.txt"));
//añadimos propiedades
p.setProperty("direccion","Panama");
//cambiamos la propiedad edad
p.setProperty("edad","20");
//Decimos el nombre del archivo de destino para grabar las propiedades
java.io.FileOutputStream out = new java.io.FileOutputStream("propiedades.txt");
//Grabamos las propiedades en el archivo
p.store(out, "nuevas propiedades");

}
catch (Exception e) {
System.out.println(e);
}

3 comentarios:

TgZxlJaGuArlx dijo...

:O muchas gracias al parecer este metodo es mucho mas sencillo para manejar archivos...

Unknown dijo...

salvaste mi semestre de poo, con un proyecto sobre uso de archivos, y nuestro profesosr nos pidio una Agenda pero no nos dio nada de manejo de archivos y lo queria en archivos... en fin esto me salvo de mucho codigo.

Unknown dijo...

Recomiendo la herramienta en línea https://poeditor.com para traducir archivos .properties