Tarea 6: Lectura de Ficheros de Texto con BufferedReader

Explicación del Ejercicio

En esta tarea se aborda la lectura eficiente de archivos de texto en Java utilizando las clases del paquete java.io. El programa lee su propio código fuente (Clase5.java) línea por línea y lo imprime por consola.

Conceptos y métodos clave:

  • Validación previa del fichero (exists()): Se comprueba la existencia del archivo antes de intentar abrir el flujo de lectura para evitar excepciones innecesarias.
  • Lectura de caracteres (FileReader): Flujo de entrada de caracteres que permite conectarse directamente con un archivo físico en el disco.
  • Buffer de lectura (BufferedReader): Empaqueta el FileReader para proporcionar un almacenamiento en búfer eficiente y habilitar el método readLine(), el cual lee el contenido línea a línea hasta devolver null al alcanzar el final del archivo.
  • Estructura try-with-resources: Se utiliza la declaración try (...) para asegurar el cierre automático e implícito del flujo de lectura al finalizar la ejecución o al ocurrir una excepción.

Código Fuente y Salida

Clase5.java
package ClaseFile;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class Clase5 {

    public static void main(String[] args) {

        // Nombre del archivo fuente
        String nombreArchivo = "Clase5.java";

        // Objeto File apuntando al archivo actual
        File archivo = new File("./src/ClaseFile/" + nombreArchivo);

        // Comprobamos si existe
        if (!archivo.exists()) {
            System.out.println("El archivo no existe: " + archivo.getAbsolutePath());
            return;
        }

        System.out.println("Mostrando el contenido de: " + nombreArchivo + "\n");

        // Leemos línea a línea
        try (BufferedReader br = new BufferedReader(new FileReader(archivo))) {

            String linea;

            while ((linea = br.readLine()) != null) {
                System.out.println(linea);
            }

        } catch (IOException e) {
            System.out.println("Error al leer el archivo: " + e.getMessage());
        }
    }
}

Resultado Mostrado por Terminal

Salida de Consola
Mostrando el contenido de: Clase5.java package ClaseFile; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; public class Clase5 { public static void main(String[] args) { // Nombre del archivo fuente String nombreArchivo = "Clase5.java"; // Objeto File apuntando al archivo actual File archivo = new File("./src/ClaseFile/" + nombreArchivo); // Comprobamos si existe if (!archivo.exists()) { System.out.println("El archivo no existe: " + archivo.getAbsolutePath()); return; } System.out.println("Mostrando el contenido de: " + nombreArchivo + "\n"); // Leemos línea a línea try (BufferedReader br = new BufferedReader(new FileReader(archivo))) { String linea; while ((linea = br.readLine()) != null) { System.out.println(linea); } } catch (IOException e) { System.out.println("Error al leer el archivo: " + e.getMessage()); } } }