SoloCodigo

Programación General => Java => Mensaje iniciado por: pipelin85 en Sábado 8 de Agosto de 2009, 00:10

Título: leer
Publicado por: pipelin85 en Sábado 8 de Agosto de 2009, 00:10
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:
Título: Re: leer
Publicado por: shadow_rev en Domingo 9 de Agosto de 2009, 00:07
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:
Título: Re: leer
Publicado por: silverfox en Lunes 10 de Agosto de 2009, 11:49
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.