Clase Scanner en Java, leer datos más rápido

Esta clase que se encuentra disponible desde Java 1.5, nos permite leer datos de una forma más sencilla que el clásico InputStream con un BufferedReader.

Para utilizarla tan solo tenemos que crearnos un objeto de tipo Scanner (importando previamente el paquete java.util.Scanner) e indicandole a este que lea de la consola con System.in. Nos quedaría lo siguiente:

Scanner pruebaScanner = new Scanner(System.in);

Una vez hecho esto sólo tenemos que utilizar la función .next , para leer por consola hasta que encuentre un retorno de carro y salto de linea. El valor lo guardaremos en un String.

String texto = pruebaScanner.next();

Con esto podríamos estar leyendo por teclado hasta que se introduzca una palabra determinada por ejemplo “fin”, utilizando un bucle while:

while (!texto.equals("fin")) {
           texto = pruebaScanner.next();
            System.out.println(texto);
       }

5 Responses to Clase Scanner en Java, leer datos más rápido

  1. Pingback: Leer ficheros con la clase Scanner - EnAlpha.com

  2. jhony andres mira dice:

    muy util pero yo nesecito ingresar numeros para poder hacer operaciones con estos.
    ¿como puedo hacerlo?.

    • enalpha dice:

      La clase Scanner puede leer directamente varios tipos. Para leer un int, que es tu caso, simplemente sería:

      int numero = pruebaScanner.nextInt();

      y tienes métodos nextDouble, etc… para otro tipos.

      Un saludo

  3. alvaro dice:

    como hago para poner String, sera que puedo podern datos = leer.nextString(); o solo le dejo Next como decia en muchas páginas. Pero es buena yuda gracias.

    • German dice:

      Para leer un String desde el teclado utiliza nextLine(). Quedaría algo asi:

      String cadena = pruebaScanner.nextLine();

      La verdad que muy útil la clase Scanner

      Saludos! Buen blog!

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.