1. Introducción
En este tutorial rápido, demostraremos varias formas de usar una consola para la entrada y salida del usuario en Java .
Echaremos un vistazo a algunos métodos de la clase Scanner para manejar la entrada, y luego mostraremos una salida simple usando System.out .
Finalmente, veremos cómo usar la clase Console , disponible desde Java 6, tanto para la entrada como para la salida de la consola.
2. Lectura de System.in
Para nuestros primeros ejemplos, usaremos la clase Scanner en el paquete java.util para obtener la entrada de System.in - el flujo de entrada "estándar":
Scanner scanner = new Scanner(System.in);
Vamos a utilizar el nextLine () método para leer una línea completa de entrada como una cadena y avanzar a la siguiente línea:
String nameSurname = scanner.nextLine();
También podemos usar el método next () para obtener el siguiente token de entrada de la secuencia:
String gender = scanner.next();
Si estamos esperando entradas numéricas, podemos usar nextInt () para obtener la siguiente entrada como una primitiva int y, de manera similar, podemos usar nextDouble () para obtener una variable de tipo double :
int age = scanner.nextInt(); double height = scanner.nextDouble();
La clase Scanner también ofrece métodos hasNext_Prefix () que devuelven verdadero si el siguiente token puede interpretarse como un tipo de datos correspondiente .
Por ejemplo, podemos usar hasNextInt ()método para comprobar si el siguiente token se puede interpretar como un número entero:
while (scanner.hasNextInt()) { int nmbr = scanner.nextInt(); //... }
Además, podemos usar el método hasNext (patrón de patrón) para verificar si el siguiente token de entrada coincide con un patrón :
if (scanner.hasNext(Pattern.compile("www.baeldung.com"))) { //... }
Además de usar la clase Scanner , también podemos usar un Input StreamReader con System.in para obtener la entrada de la consola :
BufferedReader buffReader = new BufferedReader(new InputStreamReader(System.in));
Y luego podemos leer la entrada y analizarla en un número entero:
int i = Integer.parseInt(buffReader.readLine());
3. Escribiendo en System.out
Para la salida de la consola, podemos usar System.out , una instancia de la clase PrintStream , que es un tipo de OutputStream .
En nuestro ejemplo, usaremos la salida de la consola para proporcionar un mensaje de entrada del usuario y mostrar un mensaje final a un usuario.
Vamos a utilizar el println () método para imprimir una cadena y poner fin a la línea :
System.out.println("Please enter your name and surname: ");
Alternativamente, podemos usar el método print () , que funciona de manera similar a println () , pero sin terminar la línea :
System.out.print("Have a good"); System.out.print(" one!");
4. Uso de la clase de consola para entrada y salida
En JDK 6 y posteriores, podemos usar la clase Console del paquete java.io para leer y escribir en la consola.
Para obtener un objeto Console , llamaremos System.console () :
Console console = System.console();
A continuación, usemos el método readLine () de la clase Console para escribir una línea en la consola y luego leer una línea desde la consola :
String progLanguauge = console.readLine("Enter your favourite programming language: ");
Si necesitamos leer información confidencial, como una contraseña, podemos usar el método readPassword () para solicitar una contraseña al usuario y leer la contraseña desde la consola con el eco desactivado :
char[] pass = console.readPassword("To finish, enter password: ");
También podemos usar la clase Console para escribir la salida en la consola, por ejemplo, usando el método printf () con un argumento String :
console.printf(progLanguauge + " is very interesting!");
5. Conclusión
En este artículo, mostramos cómo usar varias clases de Java para realizar la entrada y salida del usuario de la consola.
Como siempre, los ejemplos de código de este tutorial se proporcionan en GitHub.