FileReader y BufferedReader
4. Lectura de ficheros
Sección titulada «4. Lectura de ficheros»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.
4.1.1 Ejemplo
Sección titulada «4.1.1 Ejemplo»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 }}4.1.2 Métodos
Sección titulada «4.1.2 Métodos»| 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 acharpara ver el texto. Se debe cerrar el fichero conclose()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 comoString, onullsi se llegó al final.
4.2.1 Ejemplo
Sección titulada «4.2.1 Ejemplo»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()); } }}4.2.2 Métodos
Sección titulada «4.2.2 Métodos»| 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. |
Ventajas
Sección titulada «Ventajas»- 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.