Dominando la Clase Reader de Java: Subclases, Métodos y Ejemplo Práctico
Clase Reader de Java
Esta guía te lleva a través de la clase Reader de Java, sus subclases clave, métodos esenciales y un ejemplo paso a paso usando FileReader.
¿Qué es la Clase Reader?
La clase Reader en el paquete java.io es una superclase abstracta que representa un flujo de entrada de caracteres. Aunque no puede instanciarse directamente, sus subclases concretas proporcionan la funcionalidad necesaria para leer datos de texto de diversas fuentes.
Subclases Comunes de Reader
- BufferedReader – Añade búfer para lectura eficiente de caracteres, arrays y líneas.
- InputStreamReader – Puente entre flujos de bytes y flujos de caracteres usando un charset especificado.
- FileReader – Clase de conveniencia para leer archivos codificados en el charset por defecto.
- StringReader – Lee caracteres de una cadena como un flujo.
Profundizaremos en cada subclase en tutoriales dedicados.
Instanciar un Reader
Para crear un reader concreto, importa java.io.Reader y una de sus subclases. Por ejemplo, usando FileReader:
import java.io.Reader;
import java.io.FileReader;
Reader entrada = new FileReader("input.txt");
Como Reader es abstracta, debes usar una subclase; de lo contrario, ocurre un error en tiempo de compilación.
Consejo: Puedes instanciar cualquiera de las otras subclases de la misma manera.
Métodos Principales Proporcionados por Reader
boolean ready()– Retornatruesi el flujo está listo para leerse sin bloqueo.int read(char[] cbuf)– Lee caracteres en un array y retorna el número leído.int read(char[] cbuf, int off, int len)– Lee hastalencaracteres encbufcomenzando enoff.void mark(int readAheadLimit)– Marca la posición actual en el flujo.void reset()– Reposiciona el flujo a la última posición marcada.long skip(long n)– Salta y descartancaracteres.
Ejemplo: Leyendo un Archivo con FileReader
Supongamos que tenemos un archivo llamado input.txt que contiene:
Esta es una línea de texto dentro del archivo.
A continuación se muestra un ejemplo completo, listo para producción, que lee el archivo e imprime su contenido:
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
public class Main {
public static void main(String[] args) {
// Asignar un búfer lo suficientemente grande para el contenido esperado
char[] buffer = new char[100];
// Usar try-with-resources para asegurar que el reader se cierre automáticamente
try (Reader reader = new FileReader("input.txt")) {
System.out.println("¿Hay datos en el flujo? " + reader.ready());
int charsLeidos = reader.read(buffer);
System.out.println("Datos en el flujo:\n" + new String(buffer, 0, charsLeidos));
} catch (IOException e) {
e.printStackTrace();
}
}
}
Salida
¿Hay datos en el flujo? true Datos en el flujo: Esta es una línea de texto dentro del archivo.
Conclusiones clave:
- Siempre cierra el reader—
try-with-resourceslo maneja automáticamente. - Usa
ready()para verificar que hay datos disponibles antes de intentar leer. - Maneja
IOExceptionpara cubrir escenarios de archivo no encontrado o error de lectura.
Para documentación más detallada, visita el Javadoc oficial de Java Reader.
¡Feliz codificación!
Java
- Palabra clave final en Java: Variables, métodos y clases
- Operador instanceof en Java: Guía completa
- Dominando la herencia en Java: Conceptos, tipos y ejemplos prácticos
- Entendiendo las clases anidadas estáticas en Java: Uso, diferencias y ejemplos
- Dominando las clases internas anónimas en Java: Definición, sintaxis y ejemplos prácticos
- Patrón Singleton en Java explicado: Cómo implementarlo y usarlo de forma segura
- Dominando la Reflexión en Java: Inspeccionando clases, métodos y campos en tiempo de ejecución
- Dominando ArrayList en Java: Operaciones, métodos y mejores prácticas
- Dominando ObjectOutputStream de Java: Serialización, Métodos y Ejemplos Prácticos
- Dominando Java Generics: Construyendo Código Reutilizable y Type-Safe
- Dominando las operaciones de archivos en Java con java.io: creación, lectura, escritura y eliminación