Ini4j e IniEditor: Leer fichero INI con Java


Después de mucho tiempo, voy a intentar retomar el blog. 

En este post, voy a proponer dos alternativas para manipular ficheros INI de Windows. 

Las alternativas que he encontrado son ini4j e iniEditor.

Son dos librerias que de forma sencilla nos permiter leer, modificar y crear ficheros INI.  Para ello, he realizado la lectura del mismo fichero con cada una de las dos librerias.  El fichero que vamos a leer es el siguiente: 

[seccion1]entrada1 = valor1

entrada2 = valor2

entrada3 = valor67

……………

En primer lugar vamos a utilizar la librería ini4j: 

package es.fuenteperez.ini4j.main;import java.io.FileReader;

import org.ini4j.Ini;

public class MainIni4J {           

public static void main(String[] args) throws Exception {

String filename = “ejemplo.ini”;

Ini ini = new Ini(new FileReader(filename));

//Recuperar todas las secciones del fichero .ini

for(Ini.Section section : ini.values()){

//Obtener las entradas x cada una de las secciones

System.out.println(“[” + section.getName() + “]”);

for(String option : section.keySet()){

System.out.println(option + ” = “ + section.fetch(option));

}

System.out.println();

}

//Recuperar las entradas de las seccion entradaX

for(String key : ini.get(“entradaX”).keySet()){

System.out.println(“entradaX/” + key + ” = “ +ini.get(“entradaX”).fetch(key));

}

}

}

Como podemos observar basta con pasar el fichero al constructor de la clase org.ini4j.Ini, y llamar al método values() para recuperar todas las secciones (org.ini4j.Ini.Section) del fichero INI ([sección]).

A partir de las secciones podemos obtener las opciones y sus valores. Para recuperar las opciones debemos llamar al metodo keySet() de cada una de las secciones, que retorna un Set<String>.

Y por ultimo recuperamos el valor de cada una de las opciones con el metodo fetch(opcion) que retorna un String. Vamos a realizar el mismo ejemplo utilizando la librería IniEditor.

package es.fuenteperez.inieditor.main;import java.util.List;

import ch.ubique.inieditor.IniEditor;

public class MainIniEditor {

public static void main(String[] args) throws Exception {

IniEditor iniEditor = new IniEditor();

iniEditor.load(“ejemplo.ini”);

List<String> secciones = iniEditor.sectionNames();

for (String seccion : secciones) {

System.out.println(“Sección: “ + seccion);

List<String> opciones = iniEditor.optionNames(seccion);

for (String opcion : opciones) {

System.out.println(“\topción: “ + opcion +

” valor: “ + iniEditor.get(seccion,opcion));

}

}

}

} 

Para indicar el fichero que queremos leer, existe el método load(). Para recuperar las secciones esta el metodo sectionNames(), que retorna un List<String>.

A partir de este colección de String, recuperamos las opciones con el método optionNames(sección). Con las opciones obtenidas ya podemos recuperar el valor de cada una de ellas. Para esto tenemos el método get(sección, opción) que retorna un String con el valor de la opción.

Como podéis observar la lectura de ficheros INI con ambas librerías es muy similar.

Os dejo el código fuente de ambas pruebas en el siguiente link: 

http://www.fuenteperez.es/resources/readIniTest.zip

Espero que os sirva de ayuda.

Salu2. ;)

Información y enlaces

Participa comentando, viendo lo que otros tienen que decir, o enlazandolo desde tu blog.


Otros Posts
Generar ASDOC con Flex Builder
XStream: Leer ficheros XML desde Java

Escriba un comentario

Tomate un momento para comentar y contar lo que piensas sobre el post. Puedes usar un HTML b´sico para formatear.

Comentarios leidos

¡Eres el primero en dejar un comentario!