Saturday, April 17, 2010

MANEJO DE LA CLASE: java.util.Properties

Muchas veces es necesario que en nuestras aplicaciones tengamos un Archivo de Configuración con los parametros de configuración de parte o de toda nuestra aplicación. Por ejemplo, un archivo de configuración donde se registren las conexiones, drivers, URL, etc de nuestras 'BDs' a las que nos contectamos. Porque realizamos estos?, bueno normalmente para eliminar la tendencia de tener 'HardCodeado' en diferentes parte de nuestra aplicación dichos parametros. Uds dirán y porque no tenerlos en una clase 'Constantes.java', bueno la razón es que dicha clase 'Constantes.java' al ser compilada genera un '.class' y luego del despliegue si queremos editar un campo de dicha clase simplemente 'NO PODREMOS'. Por este motivo lo mejor es tener un archivo de configuración en un fichero de tipo: .PROPERTIES, .XML o un .TXT, ya que estos no se compilan y pueden ser editados en todo momento. En esta oportunidad mostraré la utilidad que brinda la clase: 'java.util.Properties', para el acceso a ficheros de tipo: .PROPERTIES y con ellos poder crearnos un archivo de configuración para nuestras aplicaciones.

FICHERO DE CONFIGURACIÓN:
#####################################################################
################ PROPIEDADES DE PARA ACCESO DE DATOS ################
#####################################################################

#### EL DELIMITADOR DE ACCESO SE PUEDE REGISTRAR CON LA SIMBOLOGÍA => ':', '=', 'BLANCO' ####

propiedad.datos.nombres = Cesar Ricardo
propiedad.datos.apellidos : Guerra Arnaiz
propiedad.datos.direccion Av Naranjal 1029 Los Olivos


CLASE: ManejoJavaProperties

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

/**
* @author Cesar Ricardo.
* @clase: ManejoJavaProperties.java
* @descripción descripción de la clase.
* @author_web: http://frameworksjava2008.blogspot.com
http://viviendoconjavaynomoririntentandolo.blogspot.com
* @author_email: nombre del email del autor.
* @author_company: nombre de la compañía del autor.
* @fecha_de_creación: dd-mm-yyyy.
* @fecha_de_ultima_actualización: dd-mm-yyyy.
* @versión 1.0
*/
public class ManejoJavaProperties{

private static final String RUTA_PATH = "src/org/java/properties/";
private static final String FICHERO = "FicheroConfiguracion.properties";

/**
* main
* @param argumentos
*/
public static void main( String[] argumentos ){
ManejoJavaProperties properties = new ManejoJavaProperties();
properties.cargarDataFichero();
}

/**
* cargarDataFichero
*/
public void cargarDataFichero(){
try{
String rutaFichero = RUTA_PATH + FICHERO;
Properties objPropiedadFichero = new Properties();
FileInputStream archivoInput = new FileInputStream( rutaFichero );

//Carga Fichero.
objPropiedadFichero.load( archivoInput );

//Obteniendo Datos.
String nombres = objPropiedadFichero.getProperty( "propiedad.datos.nombres" ); //Identificador de 'Nombres' registrado para Acceso.
String apellidos = objPropiedadFichero.getProperty( "propiedad.datos.apellidos" ); //Identificador de 'Apellidos' registrado para Acceso.
String direccion = objPropiedadFichero.getProperty( "propiedad.datos.direccion" ); //Identificador de 'Direccion' registrado para Acceso.

//Imprimiendo Resultados.
System.out.println( "- Dato Obtenido #1: " + nombres );
System.out.println( "- Dato Obtenido #2: " + apellidos );
System.out.println( "- Dato Obtenido #3: " + direccion );

objPropiedadFichero.setProperty( "propiedad.datos.nombres", "Cesar Ricardo = JAVAMAN" );

//El SETEO solo se dá en MEMORIA, no en el fichero FISICO en sí.
nombres = objPropiedadFichero.getProperty( "propiedad.datos.nombres" ); //Identificador de 'Apellidos' registrado para Acceso.
System.out.println( "" );
System.out.println( "- Dato Obtenido #1 (NEW): " + nombres );
}
catch( IOException e ){
e.printStackTrace();
}
catch( Exception e ){
e.printStackTrace();
}
}
}

Para descarga del ejemplo completo pulsar AQUÍ.

No comments: