En el trabajo estamos constantemente al pie del cañon para introducir mejoras, nuevos métodos de trabajo, nuevas tecnologías o simplemente mejorando las tecnología actual (no siempre se puede)… y en un nuevo proyecto que está llevando a cabo Andrés Nieto, tenemos la posibilidad de introducir MUCHAS MEJORAS y una de ellas es: “Leer de ficheros .properties”
La verdad que no pensaba que fuera tan fácil, pero para aquellos que deseen realizar aquí les dejo la solución de cómo hacerlo y algunos consejos JAVADIENSES
…
Leer de ficheros PROPERTIES desde JAVA (teoría)
1. Primera cosa a tener en cuenta, necesitamos el nombre de un fichero con la extensión .properties y la ruta pertinente.
Supongamos que estamos en la raiz, ejemplo:
- Mac: /Users/<nombre usuario>/config.properties
- Linux: /home/<nombre usuario>/config.properties
- Windows: C:/config.properties
2. Necesitaremos abrir el fichero y leer su contenido. Para ello utlizaremos la clase FileInputStream.
3. Después de abrirlo ya podremos utilizar la clase Property.
Código para leer ficheros .properties en Java (ejemplo prático)
1. Veamos como abrimos el fichero con la clase Java:
/* Atributos necesarios */
FileInputStream file = null;
/* Abrimos el fichero properties para leer de el */
try {
file = new FileInputStream(pathName);
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
2. Dado un objeto FileInputStream creamos un objeto Property y leemos del fichero:
/* Instanciamos el objeto Properties */
Properties propers = new Properties();
try {
propers.load(file);
} catch (IOException ex) {
ex.printStackTrace();
}
3. Ahora necesitamos obtener un objeto HashMap para leer u obtener el resultado:
/**
* METODO PUBLICO QUE DEVUELVE UN OBJETO HASHMAP CON LOS VALORES
* DEL FICHERO .PROPERTIES
*
* @param name, string con el path y el nombre del fichero .properties a leer
* @return HashMap con los valores, de lo contrario devolvemos null
*/
public HashMap getProperties(String name) {
/* Atributos necesarios */
FileInputStream file = null;
/* Abrimos el fichero properties para leer de el */
try {
file = new FileInputStream(name);
/* Instanciamos el objeto Properties */
Properties propers = new Properties();
try {
propers.load(file);
} catch (IOException ex) {
ex.printStackTrace();
}finally {
try {
/* Cerramos el fichero desde de leerlo */
file.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
/* Return */
if (!propers.isEmpty())
return new HashMap(propers);
} catch (FileNotFoundException ex) {
ex.printStackTrace();
return null;
} catch (IOException e) {
e.printStackTrace();
return null;
} catch (NullPointerException nulo){
nulo.printStackTrace();
return null;
} catch (Exception excep){
excep.printStackTrace();
return null;
}
return null;
}
Conclusión
Con este útlimo método podremos obtener un objeto HashMap con los valores de un fichero .properties cualquiera. En el caso que se produzca un error, devolveremos null (eso ya va a vuestro gusto, tambien podríais devolver un HashMap vacío así: “return new HashMap()“ ).
Espero que os haya servido!!!!!
Escribe un Comentario