Estos son sencillamente archivos de texto con el formato
<nombre_clave>=<valor_clave>
Los cuales Java tiene mecanismos para acceder en forma nativa y que nos presenta una convención en donde deben ubicarse dichos archivos, de modo que mover la aplicación en el sistema de archivos o llevarla a otro sistema no cause problemas, esto se explicara con mas detalle a su momento.
Creando el proyecto.
Comenzaremos creando un proyecto en Java, como se ve en la figura 1, si a leído entradas anteriores ya habrá notado que siempre uso el paquete mx.com.hashSoft, esta vez no sera la excepción, pero ahora es parte vital del programa por lo que debe recordar agregarlo al momento de crear la clase Propiedades.
Figura 1 - Proyecto |
Figura 2 - Archivo de texto |
Ahora crearemos el archivo propiedades, para esto cree un archivo de texto, como se ve en la figura 2, ya que el archivo exista escriba en este lo siguiente:
version=1.0
tipo=texto
data="Datos Datos Datos Datos Datos"
Y guarde el archivo, esto le presentara un dialogo como el de la figura 3
Figura 3 - Ruta del archivo |
En este caso es vital que siga la ruta indicada, esto es necesario, la idea general es que nuestro archivo properties este en la misma carpeta donde nuestra clase esta, esto es necesario para poder acceder a este.
Figura 4 - Código de la clase Propiedades |
Ahora procederemos a escribir el código de la clase Propiedades, el cual es el siguiente:
package mx.com.hashSoft;
import java.io.IOException;
import java.util.Properties;
public class Propiedades {
static public void main(String[] args){
Properties prop = new Properties();
try {
prop.load( Propiedades.class.getClassLoader().getResourceAsStream("mx/com/hashSoft/datos.properties") );
System.out.println("Contenido del campo version:\t" + prop.getProperty("version") );
System.out.println("Contenido del campo tipo:\t" + prop.getProperty("tipo") );
System.out.println("Contenido del campo data:\t" + prop.getProperty("data") );
}catch(IOException ex)
{
System.err.println("Error al acceder al archivo de propiedades");
ex.printStackTrace();
}
}
}
De esta clase hay tres lineas relevantes, que son:
import java.util.Properties; - Con esta linea importamos la clase necesaria para manipular y acceder a los archivos de propiedades
prop.load( Propiedades.class.getClassLoader().getResourceAsStream("mx/com/hashSoft/datos.properties") ); - Con esta linea estamos indicando que archivo de propiedades deseamos cargar, en este caso deseamos cargar datos.properties, que se encuentra en la ruta mx/com/hashSoft, notara que si remplaza los / con . obtiene el paquete Java donde ubicamos el archivo properties, como en la figura 5 Eclipse genero esa ruta automáticamente de modo que la estructura de los paquetes Java coincida con al organización de los archivos
Figura 5 - Ruta del archivo properties |
Todo esto podrá parecer demasiado rebuscado, mas por que es, en efecto, posible escribir directamente la ruta del archivo, sin embargo hay una razón para acceder a los archivos de este modo en la mayoría de los casos no puede saber a ciencia cierta detalles como la ruta de instalación o el directorio donde se esta ejecutando el programa no se diga cuando se trata de una aplicación que se ejecuta en un servidor, pero el classpath siempre esta perfectamente definido y se mantiene constante, lo que hace este el modo mas seguro para acceder a los archivos properties.
Ya que tenga ambos archivos puede ejecutar el programa , con lo que obtendrá una salida como la figura 6
Figura 6 - Salida |
Puede modificar el archivo properties y con eso modificar la salida del programa, como ejemplo digamos que escribiera "tipo" con mayúscula, si hace ese cambio y ejecuta el programa obtendrá la salida de la figura 7, lo que demuestra que las claves distinguen de mayúsculas y minúsculas.
Figura 7 - Archivo Modificado |
Y si cambia el valor de la clave eso se refleja en la salida, como muestra la figura 8
Figura 8 - Cambio de valor |
Y notara que incluso puede cambiar el orden en que están las claves y aun así la salida es la esperada.
Espero que la entrada halla sido de ayuda, y nos vemos pronto.
Referencias
Java Properties File Examples - http://www.mkyong.com/java/java-properties-file-examples/
No hay comentarios:
Publicar un comentario