Me encuentro desarrollando un proyecto que consiste en la lectura, transformación, y carga (sobre una base de datos). El archivo tiene un formato como el que sigue.
TipoFila1;Codigo;SubCodigo;NombreApellido;Apellido ;Direccion;Ciudad;Pais;SaldoAnterior;FechaInicialM ovimiento;FechaFinalMovimiento;Espacios;
TipoFila2;FechaDocumento;Documento;Numero;Transacc ion;DetalleTransaccion;Detalle;ValorDebito;ValorCr edito;Saldo;
TipoFila3;TotalDebitos;TotalCreditos;TotalSaldoAct ual;TotalArrendamientos;TotalComisiones;TotalOtros ;Espacios;
TipoFila4;Observacion1;Observacion2;Email;Espacios ;
Detalles:
- Los campos son diferentes por cada fila.
- Las filas TipoFila2, y TipoFila3 se pueden repetir n veces.
- El separador es el punto y coma
- Cada fila tiene un número diferente de campos.
He creado un código sin utilizar ninguna librería o framework para este tipo de tratamiento de archivos de texto. El código básicamente consiste en leer el archivo de texto e identificar el tipo de fila que estoy leyendo a través del primero campo de cada tipo de fila (TipoFila1, TipoFila2, TipoFila3, y TipoFila4).
El problema más grave que tengo actualmente con el código es de uso eficiente de memoria, debido a que al heap se queda sin capacidad después de tener cientos de cadenas de caracteres almacenadas en un ArrayList.
Me gustaría recibir comentarios, sugerencias, o cualquier elemento que me guíe en esta tarea de parseo.
Gracias de antemano.
Saludos,