Estimados, buen día, estoy intentando leer un archivo txt que corresponde a una nómina de pago , que tiene tres estructuras diferentes , pero las lineas no vienen delimitadas, la primera solo referencia el archivo, de la segunda debo extraer Dni y verificador del DNI, y de la tercera estructura rescato campos Como Tipo , Dcto, monto, etc.
Mi intención es leer linea a linea e ir rescatando de la estructura dos, los dos campos que identifican al cliente ( Dni e DigitoDNI) e ir concatenando con los demás campos que rescato de la estructura tres, para ir armando un resulset y luego mostrarlo en una tabla, pero no doy con la solución.
Adjunto lo que tengo para ver si me pueden ayudar.
Ejemplo Archivo:
010078744360500133275359000000000000000000000000000000000000000000000 0200042259535Gaston Zegard Thomas
0330 47956 0000000235025000000023502500007042014
package archivostxt;
//* @author yo
import java.io.*;
//Archivo Devoluciones
public class Prueba {
public static void main(String[] args) {
File archivo = null;
FileReader fr = null;
BufferedReader br = null;
try {
archivo = new File("C:\\prueba\\output.txt");
fr = new FileReader(archivo);
br = new BufferedReader(fr);
String linea;
while ((linea = br.readLine()) != null) {
StringBuffer lineaCompleta = new StringBuffer();
lineaCompleta.append(linea);
// String str = lineaCompleta.toString();
//String TIPO = str.substring(0,2);
while (lineaCompleta.toString().length() < 610) {
lineaCompleta.append(" ");
}
String str = lineaCompleta.toString();
String TIPO = str.substring(0, 1);
if (!TIPO.substring(0, 1).equals("02")) {
// Viene de estructura 02
String RUT = str.substring(3, 12);
String DIGITO = str.substring(13, 14);
if (!TIPO.substring(0, 1).equals("02")) {
//Vienen de estructura 03
String TIPODOC = str.substring(3, 5);
String DOC = str.substring(6, 15);
String CUOTA = str.substring(16, 18);
String MONTO = str.substring(19, 31);
String PAGO = str.substring(32, 44);
String EMISION = str.substring(45, 52);
String DESCRIP = str.substring(53, 120);
String LIBRE1 = str.substring(173, 192);
String LIBRE2 = str.substring(193, 212);
String LIBRE3 = str.substring(213, 242);
String FILLERI = str.substring(243, 368);
System.out.println(RUT + " " + DIGITO + " " + TIPO + " " + TIPODOC + " " + DOC + " " + CUOTA + " " + MONTO + " " + PAGO + " " + EMISION + " " + DESCRIP + " " + LIBRE1 + " " + LIBRE2 + " " + LIBRE3 + " " + FILLERI);
}
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (null != fr) {
fr.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
}