Fragmento de una conferencia con un mentor como parte del curso de Codegym University. Inscríbete al curso completo.


"Amigo, ha llegado tu momento. Ahora te voy a hablar sobre la entrada del teclado".

"Hemos usado System.out para mostrar datos en la pantalla. Para recibir información, usaremos System.in ".

"Suena fácil."

"Pero System.in tiene una deficiencia: solo nos permite leer códigos de caracteres desde el teclado. Para solucionar este problema y leer grandes cantidades de datos de una sola vez, usaremos una construcción más compleja:"

Ejemplo 1
Ingrese una cadena y un número desde el teclado
InputStream inputStream = System.in;
Reader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

String name = bufferedReader.readLine(); //Read a string from the keyboard
String sAge = bufferedReader.readLine(); //Read a string from the keyboard
int nAge = Integer.parseInt(sAge); //Convert the string to a number.
Ejemplo 2
Una versión más compacta del ejemplo anterior:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

String name = reader.readLine();
String sAge = reader.readLine();
int nAge = Integer.parseInt(sAge);
Ejemplo 3
Aún más compacto
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
int age = scanner.nextInt();

"¿Alguna pregunta?"

"Uh... no entendí nada."

"Para leer una cadena desde el teclado, es más conveniente usar un objeto BufferedReader . Pero para hacer eso, debe pasar el objeto del que va a leer los datos. En este caso, System.in ".

"Pero System.in y BufferedReader son incompatibles, por lo que usamos otro adaptador: otro objeto InputStreamReader ".

"Creo que ahora lo entiendo. ¿Qué es esta clase de escáner ?"

"Scanner puede ser conveniente, pero no es muy útil. La cuestión es que, a medida que avanza (tanto en el estudio como en el trabajo), usará BufferedReader e InputStreamReader a menudo , pero Scanner, muy raramente. Es conveniente en nuestro ejemplo, pero en en el futuro no será útil muy a menudo. Así que no lo usaremos mucho ".

"Eso parece claro, pero no estoy seguro de haber entendido todo".