Java - Dudas StringTokenizer

   
Vista:
Imágen de perfil de David

Dudas StringTokenizer

Publicado por David (7 intervenciones) el 12/01/2015 18:51:34
Buenas amig@s

tengo la siguiente duda: deseo crear objetos mediante un archivo plano, estos datos se encuentran separados por "|" (pipe) y de la misma forma el fin de registro está dado por "|".
ejm. 2014-06-13|31
1|1|E|01|001-001-000111111|Abierto|2014-06-12 11:00:21|04|1811111111111|05|0911111111|2000000000055500000000088800000000000|2014-06-11|2014-06-12 18:05:21|||||https://ecuador.e-factura.net/BackOff|1|E|01|001-001-000222222|No Autorizado SRI|2014-06-12 12:42:24|04|1733333333333|05|1333333333||2014-06-11|2014-06-12 19:42:12|52_ERROR EN DIFERENCIAS - --- Inventario de errores ---- Factura: El total sin impuestos de la factura 4.46 no es igual a la suma de los totales sin impuestos de los detalles 9.23 - ||||https://ecuador.e-factura.net/BackOff|.

Logré darle formato para poder tratar de crear objetos, sin embargo dado que en algunos parámetros el valor es "null" estos no son agregados.

Así se hace imposible darle un correcto formato a un objeto puesto que los datos nullos son borrados automáticamente.

¿Hay alguna manera de que al dar valor null se evite borrar y así asignar el valor null (u otro valos ej "dato nulo") en una variable?

Adjunto el código de mi app(un boton y jtextarea):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
private void jbtProcesarDatosActionPerformed(java.awt.event.ActionEvent evt) {
        Vector aux = new Vector();
        int n = 0;
        String path = "C:\\davidPracticas\\docsPlanos\\estados_20140613140004_final.txt";
        File archivo = new File(path);
        try {
            FileReader fr = new FileReader(archivo);
            BufferedReader br = new BufferedReader(fr);
            String linea;
            while((linea = br.readLine())!=null){
//                System.out.print(linea+ "\n");
                aux.add(linea);
            }
            fr.close();
        } catch (FileNotFoundException ex) {
            JOptionPane.showMessageDialog(rootPane, "Error al abrir el archivo"+"\n"+ex);
        } catch (IOException ex) {
            JOptionPane.showConfirmDialog(rootPane, "Error al leer"+ex);
        }
        for(int i=0; i < aux.size(); i++){
            //System.out.println("dato:" +i + aux.elementAt(i));  
            StringTokenizer st2 = new StringTokenizer(aux.elementAt(i).toString(), "|");
            while(st2.hasMoreTokens() & i >0 ){
                jtxtAdatosProcesados2.append("linea "+n + ": " + st2.nextToken()+"\n");
//                data = st2.nextToken();              
                n++;
            }
        }

aca el resultado:


1
2
3
4
5
6
7
8
9
10
11
...
linea 16: E
linea 17: 01
linea 18: 001-001-000222222
linea 19: No Autorizado SRI
linea 20: 2014-06-12 12:42:24
linea 21: 04
linea 22: 1733333333333
linea 23: 05
linea 24: 1333333333
...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder