Foros del Web » Programación para mayores de 30 ;) » Java »

En qué afecta este if?

Estas en el tema de En qué afecta este if? en el foro de Java en Foros del Web. Hola a todos, Estoy atravesando por algo muy extraño en estos momentos, Estoy realizando un programa que leer un archivo, y en cuanto lee la ...
  #1 (permalink)  
Antiguo 09/04/2012, 16:24
Avatar de Rod_Man_mx  
Fecha de Ingreso: agosto-2009
Mensajes: 69
Antigüedad: 14 años, 8 meses
Puntos: 4
En qué afecta este if?

Hola a todos,

Estoy atravesando por algo muy extraño en estos momentos,

Estoy realizando un programa que leer un archivo, y en cuanto lee la linea la la procesa, y la guarda en un segundo archivo, hasta este punto parece sencillo, estamos hablando de un archivo de 100,000 lineas, y que es solo uno "pequeño", así que para hacer las pruebas limite mi código a que leyera 10 lineas y se saliera, pero cuando quito el if simplemente truena y me manda un StringIndexOutOfBoundsException al leer la linea 7! (siendo que si dejo la condición a 10 lineas la lee sin problemas)
Y no entiendo cual es la diferencia, que cambia o que hace ese if que hace tronar el sistema, les dejo parte del código:

Código:
try{
                    BufferedReader br = new BufferedReader(new FileReader(archivo));
                    FileWriter fstream = new FileWriter(this.salida);
                    BufferedWriter out = new BufferedWriter(fstream, 1);
                    int i = 1;
                    while ((thisLine = br.readLine()) != null) {
                        
                        // proceso de la linea

                       if(i >= 10) break;
                       
                    }
                    out.close();
                } catch (IOException e) {
                    System.err.println("Error: " + e);
                }

A que se podría llegar a deber esto?
  #2 (permalink)  
Antiguo 09/04/2012, 16:31
 
Fecha de Ingreso: diciembre-2011
Mensajes: 152
Antigüedad: 12 años, 4 meses
Puntos: 34
Respuesta: En qué afecta este if?

No se si tenga que ver pero no estas incrementando i osea que siempre va valer 1.
  #3 (permalink)  
Antiguo 09/04/2012, 16:49
Avatar de Rod_Man_mx  
Fecha de Ingreso: agosto-2009
Mensajes: 69
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: En qué afecta este if?

de hecho si estoy incrementando, solo que los incrementos estan dentro de sentencias if
  #4 (permalink)  
Antiguo 10/04/2012, 01:07
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: En qué afecta este if?

Se agradece que pongas el código completo y la traza completa de la excepción.

Cuando te salta la excepción te indica la línea de código en la que se produce, no el nº de líneas ejecutadas por br.readLine(), creo que te estás confundiendo con eso.

Con lo que nos das faltan datos como para saber el origen del problema, pero parece que estás intentando acceder a un elemento de una linea fuera de su posición.

¿Acaso estás usando subString o charAt en algún lado?
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #5 (permalink)  
Antiguo 10/04/2012, 04:40
Avatar de afrika026  
Fecha de Ingreso: junio-2011
Mensajes: 85
Antigüedad: 12 años, 10 meses
Puntos: 19
Respuesta: En qué afecta este if?

pone todo el codigo que esta dentro del while, asi podemos analizarlo mejor.

Seguramente hay algun problema en el proceso de escritura, pone todo el codigo.

Última edición por afrika026; 10/04/2012 a las 06:21
  #6 (permalink)  
Antiguo 21/05/2012, 00:12
 
Fecha de Ingreso: mayo-2012
Ubicación: tegucigalpa
Mensajes: 6
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: En qué afecta este if?

Cita:
Iniciado por Rod_Man_mx Ver Mensaje
Hola a todos,

Estoy atravesando por algo muy extraño en estos momentos,

Estoy realizando un programa que leer un archivo, y en cuanto lee la linea la la procesa, y la guarda en un segundo archivo, hasta este punto parece sencillo, estamos hablando de un archivo de 100,000 lineas, y que es solo uno "pequeño", así que para hacer las pruebas limite mi código a que leyera 10 lineas y se saliera, pero cuando quito el if simplemente truena y me manda un StringIndexOutOfBoundsException al leer la linea 7! (siendo que si dejo la condición a 10 lineas la lee sin problemas)
Y no entiendo cual es la diferencia, que cambia o que hace ese if que hace tronar el sistema, les dejo parte del código:

Código:
try{// empieza tu try
                    BufferedReader br = new BufferedReader(new FileReader(archivo));
                    FileWriter fstream = new FileWriter(this.salida);
                    BufferedWriter out = new BufferedWriter(fstream, 1);
                    int i = 1;
                    while ((thisLine = br.readLine()) != null) {// empieza el while
                        
                        // proceso de la linea

                       if(i >= 10) break;// y las llaves de tu if, estoy casi seguro q cuando borras el if te llevas la llave de abajo osea la del while, asi q por esa razon truena
                       
                    }// termina el while
                    out.close();
   //aca el try             } catch (IOException e) {// empieza el catch
                    System.err.println("Error: " + e);
                }// termina el catch

A que se podría llegar a deber esto?
Claramente se ve q borras el cierre del while, espero te sirva de ayuda ve los comments del code saludos

Etiquetas: afecta, programa, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:22.