Enjoy A New Student Discount All 55,000 Courses on sale for Only $12.99

Ends in 05h 23m 49s

Java para programadores(4.6c). Entradas desde teclado

Lectura de datos por teclado con Scanner

La clase Scanner permite leer datos desde un stream de entrada en función del tipo esperado, para ello dispone de métodos para cada tipo

next() Devuelve el dato como String
nextByte() Devuelve el dato como byte
nextDouble() Devuelve el dato como double
nextFloat() Devuelve el dato como float
nextInt() Devuelve el dato como int
nextLine() Devuelve el contenido hasta el siguiente fin de línea, como string

Si en la entrada existen múltiples datos, esta clase, los separa con el espacio y se pueden ir solicitando cada una de las partes, de forma independiente.

Hemos de tener en cuenta, que excepto en el caso de nextLine(), el carácter de fin de línea se queda en el buffer con el consiguiente problema en la posterior lectura

Para saber si en el buffer de entrada quedan más elementos, podemos utilizar hasNext(),  y si los datos no vinieran separados por espacios, también podríamos utilizar useDelimiter(String) para indicar el separador.

Ejemplo:

Para solicitar por teclado dos números, podríamos hacer:

Podemos observar que si en la primera entrada, escribimos los dos números separados por un espacio, ya no se parara para solicitar la siguiente entrada. Luego, si deseamos aceptar solo una entrada en cada petición, deberemos limpiar el buffer

 

Lectura de datos por teclado con BufferedReader

Si queremos realizar una lectura de teclado de forma manual, podemos utilizar el stream de entrada estándar que nos proporciona System.in. Para ello, si queremos leer una línea, deberemos repetir la lectura hasta encontrar el carácter “\n” que nos marca el final de la línea; por ejemplo:

Este sistema, tiene dos inconvenientes; el primero es que nos debemos mantener en un bucle sobre el sistema de entrada subyacente, y deberemos conocer sus características, aparte de la sobrecarga que representa, el segundo, es que si debemos leer varias líneas, deberemos definir un bucle de nivel superior

Para evitar todo esto, disponemos de la clase BufferedReader que nos permite leer una línea de golpe

Antes de poderlo utilizar, tenemos que tener en cuenta que esta clase hereda de Reader, por lo que trabaja con caracteres y no con bytes, por lo que necesitamos una fuente de caracteres, y como queremos leer de la consola…

Ahora ya tenemos un InputStreamReader que podemos utilizar con

Si necesitamos leer varias líneas, lo podremos hacer con;

Deja un comentario

/*Si te ha gustado el artículo
no dudes en compartirlo*/

Facebook
Twitter
LinkedIn

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies

Ver mi IP

Ver ip de mi máquina
tipo valor
Ip: 3.91.8.23
Proxy: 3.91.8.23
Remote host: ec2-3-91-8-23.compute-1.amazonaws.com
Remote port: 64356
** 3.91.8.23