Por si no lo sabías, o aún no te ha tocado implementarlo, uno de los componentes más usados en Java para gestionar la entrada de datos es la clase BufferedReader. Como tiene capacidad para leer grandes bloques de datos y es muy fácil de usar, se ha convertido en un componente indispensable para muchos desarrolladores. Aquí te explico cómo funciona BufferedReader en Java con un ejemplo práctico.
¿Qué es BufferedReader en Java?
El BufferedReader en Java es una clase con la que se puede leer texto desde un flujo de entrada, como por ejemplo desde el teclado o un archivo. No es igual al InputStreamReader, que lee los datos de uno en uno (byte por byte), sino que el BufferedReader lee bloques grandes de datos a la vez. Como accede al flujo de entrada menos veces, su rendimiento es mejor cuando necesitas leer grandes cantidades de datos de forma rápida.
Puedes pensar en este comando como un “intermediario” entre el flujo de entrada (por ejemplo, el teclado o un archivo) y tu código. De hecho, funciona igual que cuando tienes una estantería bien organizada, porque almacena temporalmente los datos que va leyendo, para que cuando los necesites, los puedas obtener más rápido.
Cómo usar BufferedReader en Java: Aprende con este ejemplo práctico
La idea de este ejemplo práctico es que aprendas a programar en Java usando el comando BufferedReader. Te explico cómo implementarlo en un programa Java para leer datos desde el teclado. Ve siguiendo el paso a paso:
Importa las clases necesarias
Para usar BufferedReader en Java, primero necesitas importar las clases adecuadas de Java. En tu código, debes añadir las siguientes líneas al principio:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
Crea un objeto BufferedReader
Una vez importadas las clases, puedes crear un objeto BufferedReader en Java que te permitirá leer desde el flujo de entrada estándar (el teclado). Aquí te muestro cómo hacerlo:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
Este código crea un BufferedReader que lee los datos que el usuario introduce desde el teclado. La clase InputStreamReader es necesaria para convertir los datos de bytes a caracteres, mientras que System.in representa el flujo de entrada estándar (el teclado).
Leer los datos
Con el objeto BufferedReader listo, ya puedes empezar a leer datos. La forma más común de hacerlo es con el método readLine(), que lee una línea completa de texto:
String input = reader.readLine();
Como ves, este método devuelve lo que el usuario escribe como una cadena de caracteres (String). Para que conviertas esa cadena en otro tipo de dato (como un entero o un número flotante), puedes usar los métodos de conversión de Java, como Integer.parseInt() o Float.parseFloat().
Ejemplo de programa completo
En este código que te dejo aquí, te muestro un programa simple que usa BufferedReader para leer varios tipos de datos del teclado y los convierte a tipos de datos primitivos:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class EjemploBufferedReader {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
// Leer un número entero
System.out.print("Introduce un número entero: ");
String input = reader.readLine();
int numero = Integer.parseInt(input);
// Leer un número flotante
System.out.print("Introduce un número flotante: ");
input = reader.readLine();
float decimal = Float.parseFloat(input);
// Leer una cadena de texto
System.out.print("Introduce una cadena de texto: ");
input = reader.readLine();
// Mostrar los resultados
System.out.println("Número entero: " + numero);
System.out.println("Número flotante: " + decimal);
System.out.println("Cadena de texto: " + input);
}
}
Puedes darte cuenta de que este programa solicita al usuario que ingrese un número entero, un número flotante y una cadena de texto. Posteriormente, muestra los valores ingresados en la consola.
Usa BufferedReader en Java como un experto con estos consejos
Te diré que muchos no saben sacarle provecho a BufferedReader en Java, así que aquí te dejo unos consejos muy valiosos para que no te pase:
- Cierra siempre el BufferedReader: Es muy importante que cierres cualquier flujo de entrada cuando hayas terminado de usarlo, para liberar los recursos del sistema. Puedes hacerlo con reader.close();
- Manejo de excepciones: El método readLine() puede generar una excepción IOException, así que te recomiendo manejarla correctamente usando try-catch o declarar que el método puede lanzar la excepción.
- Evita la lectura de bytes individuales: No leas byte por byte, más bien aprovecha las capacidades que tiene BufferedReader para leer líneas completas.
Ahora es mucho más fácil y rápido convertirse en un experto en Java y desarrollar aplicaciones impactantes con herramientas como BufferedReader, con el Bootcamp de Java Full Stack de KeepCoding. En nuestro curso, aprenderás desde lo más básico hasta convertirte en un profesional capaz de desarrollar aplicaciones completas utilizando tecnologías de vanguardia. ¡No esperes más para dar el siguiente paso en tu carrera!