Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/08/2012, 04:55
Avatar de Radi30
Radi30
 
Fecha de Ingreso: abril-2012
Mensajes: 26
Antigüedad: 12 años
Puntos: 0
Lector de fichero doble

Hola buenas :)
Veamos... Lo que quiero hacer es un lector de un fichero en el que linea a linea voi a comprobar si tiene unas determinadas palabras clave con un if y si las tiene que se inicie otro lector de otro fichero diferente y me extraixa una linea del mismo.
El problema que me da mi codigo es que lo hace solo la primera vez, osea solo despues de la primera coincidencia. No se manejarme muy bien con java aun asique les pido ayuda.

Lo que yo creo es que no hay que vaciar el BufferedReader del segundo archivo por cada if que se cumpla... pero no e visto ninguna forma de hacerlo.

Os dejo el codigo:
Código java:
Ver original
  1. public static void main(String[] arg) {
  2.         File archivo = null;
  3.         File archivoDos = null;
  4.         FileReader fr = null;
  5.         FileReader frHab = null;
  6.         BufferedReader br = null;
  7.         BufferedReader brHab = null;
  8.  
  9.         try {
  10.             archivo = new File("D:\\npc_heroes.txt");
  11.             fr = new FileReader(archivo);
  12.             br = new BufferedReader(fr);
  13.             String heroe;
  14.  
  15.             archivoDos = new File("D:\\npc_abilities.txt");
  16.             frHab = new FileReader(archivoDos);
  17.             brHab = new BufferedReader(frHab);
  18.             String habilidad;
  19.  
  20.             while ((heroe = br.readLine()) != null) {
  21.                 String[] tokensNom = null;
  22.                 String[] tokensHab = null;
  23.  
  24.                 if (heroe.startsWith("  // HERO: ")) {
  25.                     tokensNom = heroe.split(" ", 3);
  26.                     String nombre = tokensNom[2];
  27.                     System.out.println(nombre);
  28.  
  29.                 }
  30.                 if (heroe.contains("Ability1") && !heroe.contains("Ability10") && !heroe.contains("Ability11") && !heroe.contains("Ability12")) {
  31.                     char delims = '"';
  32.                     String poo = "" + delims;
  33.                     tokensHab = heroe.split(poo);
  34.                     //System.out.println(tokensNom[3]);
  35.                     String hab1 = tokensHab[3];
  36.  
  37.                     while ((habilidad = brHab.readLine()) != null) {
  38.                         if (habilidad.contains(hab1)) {
  39.                             System.out.println(habilidad);
  40.                         }
  41.                     }
  42.                     //System.out.println(hab1);
  43.                 }
  44.             }
  45.         } catch (Exception e) {
  46.             e.printStackTrace();
  47.         } finally {
  48.             // En el finally cerramos el fichero, para asegurarnos
  49.             // que se cierra tanto si todo va bien como si salta
  50.             // una excepcion.
  51.             try {
  52.                 if (null != fr) {
  53.                     fr.close();
  54.                     frHab.close();
  55.                 }
  56.             } catch (Exception e2) {
  57.                 e2.printStackTrace();
  58.             }
  59.         }
  60.     }