0 votos
por (20 puntos) en Java
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();
            }
        }
    }
}

Por favor, accede o regístrate para responder a esta pregunta.

Preguntas relacionadas

0 votos
1 respuesta
preguntado por coque21 (20 puntos) Ene 28, 2016 en Java
0 votos
0 respuestas
preguntado por atag102 (20 puntos) Ene 4, 2017 en Java
0 votos
1 respuesta
preguntado por Atzin (20 puntos) Ene 28, 2016 en Java
0 votos
1 respuesta
preguntado por al2001 (320 puntos) Ene 28, 2016 en Java
0 votos
1 respuesta
Bienvenido a Dudas de Programación, donde puedes hacer preguntas y recibir respuestas sobre los problemas más frecuentes de los lenguajes de programación, frameworks de desarrollo y bases de datos que utilices. Foro de Línea de Código

Categorías

...