• Sábado 27 de Abril de 2024, 18:48

Autor Tema:  leer  (Leído 1111 veces)

pipelin85

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
leer
« en: Sábado 8 de Agosto de 2009, 00:10 »
0
hola quisiera saber como hacer para que con scanner o con buffer el compilador lea hasta que no encuentre mas datos
ejemplo
6 7
45 67
y que en 67 termine de leer y pase a hacer lo siguiente que le diga :oops:

shadow_rev

  • Miembro MUY activo
  • ***
  • Mensajes: 397
  • Nacionalidad: co
  • Un SPARTAN no muere en combate
    • Ver Perfil
    • http://shadowrev.blogspot.com
Re: leer
« Respuesta #1 en: Domingo 9 de Agosto de 2009, 00:07 »
0
Según lo que entiendo del problema, lo que quieres es que mientras lee un archivo de texto plano, si encuentra un 67, se detenga la lectura del archivo, no ?

Esto es lo que yo haría:
Código: Java
  1. // reader es el objeto de tipo BufferedReader, linea_actual es un String
  2. while((linea_actual = reader.readLine()) != null) {
  3.     // ...
  4.     // La función chequeo busca el 67 y retorna true si lo halla
  5.     if(chequeo(linea_actual)) {
  6.         break;
  7.     }
  8.     // ...
  9. }
  10.  
O algo así. Scanner nunca lo he usado.

:suerte:
Volará quien le ponga alas a sus sueños (Candidate for goddess)
Si el mal existe en este mundo, reside en el corazón de la humanidad (Edward D. Morrison - Tales of Phantasia)
Lo único que puedes cambiar del pasado, es lo que sientes por él en el presente (Lockon Stratos - Mobile Suit Gundam 00)
Ingeniero de Sistemas

silverfox

  • Miembro MUY activo
  • ***
  • Mensajes: 280
    • Ver Perfil
Re: leer
« Respuesta #2 en: Lunes 10 de Agosto de 2009, 11:49 »
0
Hola...

En el caso de una lectura normal (no la clase Scanner), tienes un método en todos los InputStream que es available, que te indica cuántos bytes hay disponibles para lectura. En el caso en el que quieras leer todo lo que hay y pasar a otra cosa, puedes decirle que te lea todos los bytes disponibles en ese momento:

Código: Text
  1.  
  2. byte[] lectura = new byte [ myInputStream.available() ] ;
  3. myInputStream.read(lectura);
  4.  
  5.  

En el caso del Scanner, va por tokens, lo que quiere decir que tienes que definir un separador (el normal es el espacio blanco).
Utiliza un bucle while (myScanner.hasNext()) para ir recogiendo los tokens, cuando hasNext()== false, ya habrás leído todo lo que hay disponible en el Scanner.



Espero que te sirva.

Un saludo.