07/05/2011, 04:56
|
| | Fecha de Ingreso: abril-2011
Mensajes: 10
Antigüedad: 13 años, 7 meses Puntos: 0 | |
leer archivo por campos Hola,
estoy trabajando con ficheros y me he econtrado con una duda que no consigo resolver. resulta que yo quiero leer ficheros, que estarian de la siguiente manera:
Hola,adios,ciao (al final de cada linea he puesto un espacio)
mañana,tarde,noche
azul,blanco,negro
entonces quiero leer campo a campo y si encuentro el nombre que busco, guardarme en un variable esa linea entera. eso lo hago con este codigo:
public class Ficheros{
public static void main(String[] args) {
File f = new File("fichero.txt");
Scanner s;
int d;
try {
s = new Scanner(f);
do{
String linea = s.nextLine();
Scanner sl = new Scanner(linea);
Scanner s2 = new Scanner(linea);
sl.useDelimiter("\\s*,\\s*");
s2.useDelimiter("\\s* \\s*");
String padre="blanco";
String e=s2.next();
String a=sl.next();
String b=sl.next();
d = padre.compareTo(b);
String c=sl.next();
if(d==0){
//guarda esa linea
System.out.println("padre encontrado");
System.out.println("la linea es: "+e);
System.out.println("a es "+a);
System.out.println("b es "+b);
System.out.println("c es "+c);
}
System.out.println(" ");
}while (s.hasNextLine());
s.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
La duda viene cuando quiero hacer lo mismo, pero no sabiendo cuantos campos hay en cada linea. Tendre lineas con dos campos, y tendre lineas con 20. He pensado en un while cuya condicion de parada sea que encuentre el espacio, y entonces pase a la siguiente linea y empiece de nuevo con la linea nueva, pero no se como expresar esa condicion de parada. Tampoco estoy segura de que esto funcionara. Alguna idea?? Gracias |