Hay muchas situaciones en las que necesitamos tomar la entrada del usuario de acuerdo a sus requerimientos. En estos casos no podemos tomar las entradas en nuestro programa, sino que tenemos que tomar la entrada de la consola en la ejecución del programa. Java proporciona diferentes maneras de tomar la entrada y proporcionar la salida en la consola. En este artículo, vamos a aprender cómo tomar la entrada de la consola del usuario utilizando la consola de Java. Aprenderemos cada forma de utilizar una consola para la entrada y salida del usuario en Java con la ayuda de ejemplos.

Así que, vamos a empezar a explorar las diferentes formas de leer la entrada de la consola de Java.

Clase de la consola de Java

Manteniéndote actualizado con las últimas tendencias tecnológicas, Únete a TechVidvan en Telegram

Consola de Java

Hay tres formas de tomar entradas de la consola en Java

  1. Usando la clase Java BufferedReader
  2. A través de la clase Java Scanner class
  3. Usando Java Console class

Usando BufferedReader class

Usando BufferedReader class es el método clásico de tomar entradas desde la consola. Java ha introducido esta técnica desde Java 1. La BufferedClass lee los datos línea por línea a través del método readLine(). Esta clase envuelve el System.in con un InputStreamReader.

Para utilizar estas clases, necesitamos usar el paquete java.io. Veamos un ejemplo para entender este método de lectura de entradas de la consola.

Código para leer la entrada usando la clase BufferedReader:

package com.techvidvan.consoleinput; //Java program to demonstrate BufferedReaderimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class BufferedReaderDemo{ public static void main(String args) throws IOException { InputStreamReader input = new InputStreamReader(System.in); //Taking the input data using the BufferedReader class BufferedReader reader = new BufferedReader(input); // Reading data using readLine System.out.println("Please enter the input:"); String name = reader.readLine(); // Printing the read line System.out.println("You entered: "); System.out.println(name); }}

Salida:

Por favor, introduce la entrada:
TechVidvan’s Java Tutorial
Has entrado:
TechVidvan’s Java Tutorial

Utilizando la clase BufferedReader hasta que el usuario escriba «over»

También podemos utilizar la clase BufferedReader para tomar la entrada del usuario hasta que éste escriba cualquier cadena que coincida con nuestra String de prueba. Pongamos un ejemplo para entender esto.

Código para entender este ejemplo:

package com.techvidvan.consoleinput;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class BufferedReaderDemo{ public static void main(String args) throws IOException { InputStreamReader input = new InputStreamReader(System.in); //Taking the input data using the BufferedReader class BufferedReader reader = new BufferedReader(input); String name = ""; System.out.println("Enter the names and when you want to stop entering the name, type Over"); while(!name.equals("Over")) { System.out.println("Enter the name: "); // Reading data using readLine() method name = reader.readLine(); // Printing the read line System.out.println("The entered name is: "+name); if(name.contentEquals("Over")) System.out.println("You entered Over!!"); } reader.close(); input.close(); } }

Salida:

Introduce los nombres y cuando quieras dejar de introducir el nombre, escribe Over
Introduce el nombre:
Avina
El nombre introducido es: Avina
Introduce el nombre:
Neha
El nombre introducido es: Neha
Introduce el nombre:
Ravi
El nombre introducido es: Ravi
Introduce el nombre:
Over
El nombre introducido es:
¡Has introducido Over!!!

Nota: El método readLine() se utiliza para tomar la entrada String del usuario. Si queremos leer los otros tipos, podemos utilizar los métodos como

  • Integer.parseInt(): para leer valores int
  • Double.parseDouble(): para leer valores double
  • Float.parseFloat(): para leer valores float
  • Para leer múltiples valores, utilizamos el método split().

    Usando la clase Scanner

    La segunda forma de tomar la entrada del usuario es utilizando la clase java.util.Scanner. Es probablemente la mejor opción para tomar la entrada de la consola del usuario. Esta clase lee la entrada del usuario en la consola o en la línea de comandos. El otro uso de la clase Scanner es analizar las cadenas y los tipos primitivos con la ayuda de las expresiones regulares de java.

    La clase Scanner está presente en el paquete java.util. Esta clase obtiene la entrada de System.in (flujo de entrada estándar).

    En segundo lugar, también utilizamos esta clase Console para leer la entrada de tipo contraseña sin mostrar los caracteres de la contraseña de entrada en la consola.

    Sintaxis del uso de la clase Scanner:

Scanner scanner = new Scanner(System.in);

Ventajas

  • La clase Scanner proporciona métodos útiles como nextInt(), nextDouble(), nextFloat(), etc, para analizar tipos de datos primitivos.
  • La clase Scanner utiliza expresiones regulares y podemos usar estas expresiones regulares para encontrar tokens.

Desventajas

  • Los métodos de la clase Scanner para leer valores no están sincronizados

Tipos de entrada de la clase Scanner

Para leer los valores de varios tipos de datos, la clase Scanner proporciona varios métodos. La siguiente tabla muestra estos métodos:

.

Método Descripción
siguienteBoolean() Este método lee un valor booleano del usuario
siguienteByte() Este método método lee un valor byte del usuario siguienteDouble() Este método lee un valor doble del usuario
siguienteFloat() Este método lee un valor float del usuario
siguienteInt() Este método lee un valor int del usuario
siguienteLine() Este método lee un valor String del usuario
siguienteLong() Este método lee un valor long del usuario
siguienteCorto() Este método lee un valor corto del usuario

Código para tomar la entrada del usuario usando la clase Scanner:

package com.techvidvan.consoleinput;import java.util.Scanner;public class ScannerClassDemo{ // Java program to understand the use of Scanner in Java public static void main(String args) { // Using Scanner for Getting Input from User Scanner sc = new Scanner(System.in); System.out.println("Enter a string"); String string = sc.nextLine(); System.out.println("You entered string: " +string); System.out.println("Enter a number"); int num = sc.nextInt(); System.out.println("You entered integer: " +num); System.out.println("Enter a float number"); float fnum = sc.nextFloat(); System.out.println("You entered float: " +fnum); }}

Salida:

Ingresa una cadena
TechVidvan
Ingresas la cadena: TechVidvan
Introduce un número
5
Has introducido un número entero: 5
Ingresa un número float
87,4
Ingresaste float: 87,4

Usando la clase Java Console

La clase Java Console es la tercera técnica para tomar entradas del usuario a través de la consola. La clase Console fue introducida desde Java 1.5. Esta clase está presente en el paquete java.io. Hay varios métodos en la clase Console que ayudan a leer los textos de entrada y las contraseñas desde la consola, sin mostrarlos en la pantalla. En segundo lugar, también utilizamos esta clase Console para leer la entrada de contraseñas sin mostrar los caracteres de la contraseña de entrada en la consola.

Ventajas

  • Lectura de contraseña sin mostrar los caracteres de la contraseña en la consola.
  • Los métodos de lectura de la clase consola están sincronizados.
  • También podemos utilizar la sintaxis de cadena de formato con la clase Console

Desventajas

  • No funciona en un entorno no interactivo (como en un IDE).

Métodos de la clase Java Console

La siguiente tabla muestra varios métodos de la clase Java Console:

Char readPassword(String fmt, Object… args)

Método Descripción
Lector() Este método obtiene el objeto de la clase Reader relacionado con la consola.
String readLine() Este método lee una sola línea de texto de la consola.
String readLine(String fmt, Object… args) Este método proporciona un prompt formateado antes de leer el texto de entrada de la consola.
char readPassword() Se utiliza para leer una contraseña que es visible en la pantalla de la consola.
Este método proporciona un prompt formateado antes de leer la contraseña que no es visible en la pantalla de la consola.
Console format(String fmt, Object… args) Este método muestra una cadena formateada al flujo de salida de la consola.
Console printf(String format, Object… args) Este método imprime una cadena en el flujo de salida de la consola.
PrintWriter writer() Este método se utiliza para obtener el objeto de la clase PrintWriter.
void flush() Este método se utiliza para vaciar la consola.

Código para tomar la entrada del usuario usando la clase Console:

package com.techvidvan.consoleinput;public class Sample { public static void main(String args) { // Using Console to input data from user System.out.println("Enter something"); String name = System.console().readLine(); System.out.println("You entered: " +name); }}

Salida:

Ejemplo de clase Console de Java

Ejemplo de Console de Java para leer la contraseña

import java.io.Console; class Sample{ public static void main(String args) { Console c=System.console(); System.out.println("Enter password: "); char ch=c.readPassword(); String pass=String.valueOf(ch);//converting char array into string System.out.println("Password is: "+pass); } } 

Salida:

Leer la entrada de la consola java

Resumen

En este artículo de Java, vimos tres formas diferentes de obtener la entrada del usuario y luego procesarla y mostrar la salida deseada al usuario en la consola. Podemos utilizar cualquiera de las tres clases para obtener la entrada de la consola del usuario que son la clase BufferedReader, la clase Scanner, y la clase Java Console. Hay varios métodos para leer la entrada del usuario. Discutimos estas tres formas con el ejemplo.

Gracias por leer nuestro artículo. Espero que lo hayas disfrutado. Compártelo en las redes sociales.

Sigue aprendiendo 🙂

Categorías: Articles

0 comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *