problemas al leer los datos de un archivo
siguiendo los consejos del usuario nabetse y copiando código de todos lados hice lo siguiente:
import java.io.*;
import java.util.*;
public class MuestraFichero1{
public static void main(String[] args){
int c;
String cadena;
try{
FileReader fr = new FileReader("/gabi.txt");
BufferedReader br = new BufferedReader(fr);
while ((cadena = br.readLine() )!=null){
cadena = br.readLine();
StringTokenizer tk=new StringTokenizer(cadena," ");
while (tk.hasMoreTokens()){
String elemento=tk.nextToken();
System.out.println(elemento);
}
}
br.close();}
catch(Exception e){
System.out.println("Error con el fichero");
}
}
}
pero el problema es que me devuelve la segunda linea, la cuarta, y asà sucesivamente, muestra las lineas pares y omite las impares, ven algún error ?
gracias !
import java.io.*;
import java.util.*;
public class MuestraFichero1{
public static void main(String[] args){
int c;
String cadena;
try{
FileReader fr = new FileReader("/gabi.txt");
BufferedReader br = new BufferedReader(fr);
while ((cadena = br.readLine() )!=null){
cadena = br.readLine();
StringTokenizer tk=new StringTokenizer(cadena," ");
while (tk.hasMoreTokens()){
String elemento=tk.nextToken();
System.out.println(elemento);
}
}
br.close();}
catch(Exception e){
System.out.println("Error con el fichero");
}
}
}
pero el problema es que me devuelve la segunda linea, la cuarta, y asà sucesivamente, muestra las lineas pares y omite las impares, ven algún error ?
gracias !
Si, hay un error:
Dentro de la condicion while haces cadena=br.readline() con lo que guarda en tu variable cadena una linea del fichero. Pero inmediatamente despues de entrar en el while, vuelves a poner cadena=br.readline() con lo cual vuelve a leer una linea del fichero y esa es la que se guarda en cadena.
Por eso solo te lee las lineas pares.
basta con que quites la linea
cadena = br.readLine();
la primera ya dentro del while y te funcionara correctamente.
Dentro de la condicion while haces cadena=br.readline() con lo que guarda en tu variable cadena una linea del fichero. Pero inmediatamente despues de entrar en el while, vuelves a poner cadena=br.readline() con lo cual vuelve a leer una linea del fichero y esa es la que se guarda en cadena.
Por eso solo te lee las lineas pares.
basta con que quites la linea
cadena = br.readLine();
la primera ya dentro del while y te funcionara correctamente.