• 16
  • Jan

Leer el teclado en java

Veamos como leer desde el teclado en Java. Java es enigmático en esto xD
asi es que vamos por partes.

  • La Clase InputStream: El Objeto System.in

    Asi como vimos que Java nos ofrece System.out para la salida de datos por la pantalla, también tenemos System.in para la entrada de datos. System.in es un objeto de una clase llamada InputStream. InputStream es para leer bytes y sólo tiene métodos para leer bytes.
    Pero nosotros no queremos leer bytes, sino queremeos leer letras y números del teclado :@ !! Por ejemplo si escribimos en el teclado una A mayúscula y la leemos con System.in, obtendremos un entero de valor 65, que es el valor del byte correspondiente a la A.

  • Los Reader

    La clase Reader es una clase que lee carácteres, un Reader tiene métodos para leer caracteres.

    Ahora el problema es :
    ¿ Cómo convertir el System.in en Reader?
    Pues para felicidad de nosotros, existe la clase InputStreamReader, que hace esta conversión.

    ¿Cómo obtener un Reader?
    Debemos instanciar un InputStreamReader , pasando en el constructor un InputStream

    InputStreamReader isr = new InputStreamReader(System.in);

    Declaramos la variable isr de tipo StreamReader.Luego creamos un objeto de esta clase escribiendo new InputStreamReader(). Entre las paréntesis le pasamos el InputStream que queremos pasar a Reader. Y ya tenemos nuestro Reader :)

    ¿Ahora, cómo es su funcionamiento?
    InputStreamReader es un Reader. Al construirlo le hemos pasado un InputStream.
    Cuando pedimos caracteres a InputStreamReader, él le pide al InputStream que es el que tiene guardado los bytes, luego estos bytes los convierte a caracteres y nos lo devuelve.

  • La Clase BufferedReader

    La clase InputStreamReader nos da los caracteres sueltos y como son caracteres sueltos debemos decirle cúantos caracteres queremos que lea. Y si tuvieramos solo la clase InputStreamReader sería bastante código.
    Pero para la solución existe la clase BuffeerReader. El mecanismo para obtener un BufferReader a partir de otro Reader es similar al que usamos antes.
    Lo instanciamos pasándole en el constructor el Reader.

    BufferedReader br = new BufferedReader (isr);

    En cuanto al funcionamiento es similar al del InputStreamReader. Cuando pedimos una línea de caracteres (String), ella se lo pide al Reader, los convierte en String y nos lo devuelve.

    Para pedir un String se usa el método readline()

    String texto1 = br.readLine();

    Esto lee del teclado un String y lo guarda en la variable texto1

  • Convertir una Cadena (String) a un Entero (Int)

    Ahora que pasa si queremos convertir un String a un Entero, por ejemplo si escribimos “4285″, con la clase BufferReader obtendremos un String de 4 caracteres. Y eso no es igual al número 4285.

    Para convertir usaremos la clase Integer, pero esta clase es bien estricta asi es que tenga cuidado con ella =P , para convertir un String a int es necesareo que el String sea un int. Por ejemplo si escribimos “java” nunca podra ser convertido a int. Otro caso seria si escribimos “42 85″ tampoco sería convertido ya que el espacio entre el 42 y el 85 hace que falle, ya que el espacio lo toma como un caracter.
    La conversión se realiza de la siguiente manera:

    int valor = Integer.parseInt(texto1);

    El código anterior intenta cambiar lo que esta almacenado en la variable texto1 a un valor entero, siempre y cuando texto1 sea un int.

Si te gusto recomiendalo

Subscribe to our RSS feed. Tweet this! StumbleUpon Reddit Digg This! Bookmark on Delicious Share on Facebook

5 Respuestas en “Leer el teclado en java”

  1. Juan M. Pereyra says:

    Exelente articulo.

    Muy explicativo y explicito.
    Exactamente al grano y sin vueltas.

    Muchas grax! :)

  2. WillxD says:

    Que bueno que se haya entendido :D !

  3. lalo says:

    Una pregunta, q pasa si quiero ingresar o un entero o una cadena, x ejemplo ingrese nº de expediente o nombre, por que cada uno me lee una cosa

  4. mamello says:

    Hola, no entendi muy bien como se usa. Es que hace 2 clases que tuve y queria aprender por mi parte por eso intente hacer un programita que leyera de teclado, sera que tendrian un codigo de ejemplo? desde ya muchas gracias.
    Salu2

  5. Francisco says:

    Estoy empezando a aprender Java y tu artículo ha sido claro, puntual y preciso. Gracias, me fue de mucha ayuda.
    Saludos,

Deja tu Comentario

blog