Ir al contenido

FileReader y BufferedReader

Cuando se necesita leer información desde un fichero de texto, existen clases específicas para hacerlo de forma eficiente. Las dos más comunes son FileReader y BufferedReader.

4.1 FileReader: lectura carácter por carácter

Sección titulada «4.1 FileReader: lectura carácter por carácter»

La clase FileReader permite leer ficheros de texto plano carácter por carácter.

Se utiliza cuando se quiere procesar cada letra o símbolo de forma individual, pero no es la más eficiente cuando se necesita leer líneas completas.

import java.io.FileReader;
import java.io.IOException;
public class LectorBasico {
public static void main(String[] args) throws IOException {
FileReader lector = new FileReader("usuarios.txt");
int caracter;
while ((caracter = lector.read()) != -1) {
System.out.print((char) caracter);
}
lector.close(); // Cierra el archivo
}
}
Método Descripción
read() Lee el siguiente carácter como número (int). Devuelve -1 si se llega al final.
close() Cierra el archivo abierto y libera recursos.

El método read() lee un solo carácter y devuelve un número. Se debe convertir a char para ver el texto. Se debe cerrar el fichero con close() para liberar recursos.


4.2 BufferedReader: lectura línea por línea

Sección titulada «4.2 BufferedReader: lectura línea por línea»

La clase BufferedReader se usa junto con FileReader para leer el archivo línea por línea, lo que hace el proceso más rápido y práctico cuando el archivo tiene texto organizado por líneas (como listas de usuarios, nombres, etc.).

El método más importante es:

  • readLine(): devuelve una línea completa del archivo como String, o null si se llegó al final.
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class LectorLineas {
public static void main(String[] args) {
try (BufferedReader lector = new BufferedReader(new FileReader("usuarios.txt"))) {
String linea;
while ((linea = lector.readLine()) != null) {
System.out.println("Línea leída: " + linea);
}
} catch (IOException e) {
System.out.println("Error al leer el archivo: " + e.getMessage());
}
}
}
Método Descripción
readLine() Lee y devuelve una línea completa como String. Devuelve null si se llegó al final.
close() Cierra el flujo de lectura y libera los recursos.
  • Lee texto completo por línea, no carácter por carácter.
  • Es mucho más eficiente para ficheros grandes.
  • Facilita trabajar con datos tipo lista.