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 elFileReaderpara proporcionar un almacenamiento en búfer eficiente y habilitar el métodoreadLine(), el cual lee el contenido línea a línea hasta devolvernullal alcanzar el final del archivo. -
Estructura
try-with-resources: Se utiliza la declaracióntry (...)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());
}
}
}