Maneras de Lectura de Datos en Java

IO

Conozca las diferentes maneras de leer la entrada (datos por el teclado) desde la consola en Java. En Java, hay tres formas diferentes de leer la entrada del usuario en el entorno de línea de comandos (consola).

0. Lectura de datos desde teclado

Para recoger datos por teclado usamos System.console().readLine() (ver sección 3 de este artículo | NO TRABAJA EN UN IDE). Al llegar a esta sentencia, el programa se detiene y espera que el usuario introduzca información mediante el teclado. La introducción de datos termina con la pulsación de la tecla INTRO. Una vez que el usuario presiona INTRO, todo lo que se ha tecleado se almacena en una variable.

Ejemplo:

class EntradaTexto {
    
        public static void main(String[] args) {
            String nombre;
            System.out.print("Por favor, dime tu nombre: ");
            nombre = System.console().readLine();
            System.out.println("Hola " + nombre + ", ¡bienvenido a Java desde Cero!");
        }
}

Si en lugar de texto necesitamos datos numéricos, deberemos convertir la cadena introducida en un número con el método adecuado. Integer.parseInt() convierte el texto introducido por teclado en un dato numérico, concretamente en un número entero.

Pero como decía no es recomendado si está utilizando un IDE. Sin embargo, es bueno conocerlo. ¡Ahora vamos a la acción! Pasemos a ver las diferentes maneras de leer datos en Java.

1.Utilizando la Clase Buffered Reader

Este es el método clásico de Java para leer datos de entrada, introducido en JDK 1.0. Este método se usa envolviendo System.in (flujo de entrada estándar) en un InputStreamReader que está envuelto en un BufferedReader, podemos leer la entrada del usuario en la línea de comando.

Lo bueno: La entrada está almacenada temporalmente para una lectura eficiente.
Lo malo: El código de envoltura es difícil de recordar.

Ejemplo:

// Programa Java para demostrar BufferedReader
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class LecturaDatos 
{
    public static void main(String[] args) throws IOException 
    {
        //Ingrese datos usando BufferReader
        BufferedReader reader = 
                   new BufferedReader(new InputStreamReader(System.in));
        
        // Leyendo datos usando readLine
        String name = reader.readLine();
 
        // Imprimir la línea de lectura
        System.out.println(name);        
    }
}

Entrada:

Javeros

Salida:

Javeros
Nota: Para leer otros tipos, usamos funciones como Integer.parseInt(), Double.parseDouble(). Para leer valores múltiples, utilizamos split().

2.Utilizando la Clase Scanner

Este es probablemente el método más preferido para tomar datos de entrada. El objetivo principal de la clase Scanner es analizar los tipos primitivos y las cadenas con expresiones regulares, sin embargo, también se puede usar para leer las entradas del usuario en la línea de comandos.

Lo bueno: Métodos prácticos para parsear primitivos (nextInt(), nextFloat(), …) desde la entrada. 
Lo malo: Los métodos de lectura no están sincronizados. 

Ejemplo:

// Programa Java para demostrar el funcionamiento de la clase Scanner en Java
import java.util.Scanner;
 
class ObtenerEntradaUsuario
{
    public static void main(String args[])
    {
        // Usando Scanner para obtener información del usuario
        Scanner in = new Scanner(System.in);
 
        String s = in.nextLine();
        System.out.println("Usted ingresó la cadena: "+s);
 
        int a = in.nextInt();
        System.out.println("Usted ingresó un entero: "+a);
 
        float b = in.nextFloat();
        System.out.println("Usted ingresó un float: "+b);
    }
}

Entrada y Salida:

java
Usted ingresó la cadena: java
2
Usted ingresó un entero: 2
2,0
Usted ingresó un float: 2.0
  • Puede leer un poco más acerca de clase Scanner en este enlace.

3.Utilizando la Clase Console

Se ha convertido en una forma preferida para leer la entrada del usuario desde la línea de comandos. Además, se puede usar para leer una entrada similar a la contraseña sin hacer eco de los caracteres ingresados ​​por el usuario (sin mostrarlos); la sintaxis de cadena de formato también se puede usar (como System.out.printf ()).

Lo bueno: Lectura de contraseña sin repetir los caracteres ingresados y los métodos de lectura están sincronizados. 
Lo malo: No funciona en un entorno no interactivo (como en un IDE). 

Ejemplo:

// Programa Java para demostrar el funcionamiento de System.console()
// Tenga en cuenta que este programa no funciona en IDEs
public class Sample 
{
    public static void main(String[] args) 
    {        
        // Usar la consola para ingresar datos del usuario
        String name = System.console().readLine();
         
        System.out.println(name);
    }
}

Cuéntanos cuál es tu forma o manera preferida de entrada y lectura de datos en Java 🙂

Lectura de Datos
  • 10/10
    Maneras de Ingresar datos por teclado - 10/10
10/10

Resumen

Conoce las tres formas diferentes de leer la entrada del usuario en Java.

Sobre el Autor:

Hey hola! Yo soy Alex Walton y tengo el placer de compartir conocimientos hacía ti sobre el tema de Programación en Java, desde cero, Online y Gratis.

2 comentarios

  1. sulay g

    Mi forma favorita de leer los datos en Java es utilizando la clase Scanner 🙂

Deja una Respuesta

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.