FixedFormat4J: Librería para generar y leer ficheros con formatos
martes, mayo 27, 2008 at 5:28PM Creo que todos en nuestra carrera de programadores nos hemos visto en la necesidad de leer y escribir ficheros con formatos especiales y únicos, formatos por lo general definidos por aplicaciones legadas antes de la existencia de XML o JSON.
Hablo del típico fichero en texto plano de 1000 líneas que genera el sistema de nómina cada mes con las altas, bajas y cambios de todos los empleados y que utiliza "00000" o "===" para separar los campos de cada registro y que nuestra aplicación debe leer y cargar en una base de datos. O del fichero de 100000 líneas con los movimientos bancarios de los clientes de un banco que debemos generar cada semana para que el mainframe pueda cargarlos en el DataWarehouse legado.
Pues bien, Jacob von Eyben se ha hecho a la tarea de desarrollar una librería que facilita este tipo de tareas. El desarrollador crea una clase que modela los datos de un fichero dado y mediante anotaciones se indica el tipo de dato y el formato del mismo dentro del fichero, por ejemplo:
@Field(offset = 11, length = 5, align = Align.RIGHT, paddingChar = '0')
public Integer getIntegerData() {
return integerData;
}
La librería contiene un objeto Manager que se encarga de la lectura de un String con los datos y rellena la clase que definiste (por cierto, sería agradable que también pudiera leer directamente un InputStream). Por otro lado, este Manager también permite realizar la operación inversa: a partir de una clase anotada genera un String con los datos en el formato especificado.
La librería es opensource bajo la licencia Apache v 2 y está en desarrollo, de hecho podrás ver que la documentación es escasa. Sin embargo creo que resulta muy útil para esas tareas tediosas que siempre nos encontramos de cuando en cuando.
j2se 
Reader Comments