Tarea 7: Lectura de Ficheros Carácter a Carácter con FileReader

Explicación del Ejercicio

En esta tarea se analiza la lectura básica de archivos mediante flujos de caracteres en Java utilizando directamente la clase FileReader. El programa localiza su propio código fuente (Clase6.java), verifica su presencia y procesa el contenido lectura a lectura, carácter por carácter.

Conceptos y métodos clave:

  • Comprobación de existencia (exists()): Se instancia el objeto File y se valida la existencia previa del archivo en disco antes de inicializar el flujo de lectura.
  • Flujo de entrada de caracteres (FileReader): Permite abrir un flujo directo de lectura sobre el archivo objetivo.
  • Lectura individual (fr.read()): El método read() devuelve el código entero del carácter leído en un rango de 0 a 65535, o el valor -1 cuando alcanza el final del fichero (EOF).
  • Casteo explícito ((char) caracter): Dado que read() retorna un int, se convierte explícitamente a tipo char para reconstruir y mostrar el texto por consola.
  • Gestión automática de recursos (try-with-resources): Garantiza que el recurso del FileReader se cierre correctamente al finalizar el bloque de ejecución o ante una excepción de entrada/salida (IOException).

Código Fuente y Salida

Clase6.java
package ClaseFile;

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

/**
 * @author Eva Gallardo Romero
 * @date 23 de sep de 2026
 * Programa en Java que muestra por consola el contenido
 * de su propio código fuente leyendo el archivo carácter a carácter.
 * Para ello localiza el archivo .java correspondiente, comprueba su
 * existencia y posteriormente procesa el fichero utilizando un
 * FileReader para obtener cada carácter individualmente.
 */

public class Clase6 {

    public static void main(String[] args) {

        String nombreArchivo = "Clase6.java";
        File archivo = new File("./src/ClaseFile/" + nombreArchivo);

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

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

        try (FileReader fr = new FileReader(archivo)) {

            int caracter;

            for (caracter = fr.read(); caracter != -1; caracter = fr.read()) {
                System.out.print((char) caracter);
            }

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

Resultado Mostrado por Terminal

Salida de Consola
Mostrando el contenido de: Clase6.java package ClaseFile; import java.io.File; import java.io.FileReader; import java.io.IOException; /** * @author Eva Gallardo Romero * @date 23 de sep de 2026 * Programa en Java que muestra por consola el contenido * de su propio código fuente leyendo el archivo carácter a carácter. * Para ello localiza el archivo .java correspondiente, comprueba su * existencia y posteriormente procesa el fichero utilizando un * FileReader para obtener cada carácter individualmente. */ public class Clase6 { public static void main(String[] args) { String nombreArchivo = "Clase6.java"; File archivo = new File("./src/ClaseFile/" + nombreArchivo); if (!archivo.exists()) { System.out.println("El archivo no existe: " + archivo.getAbsolutePath()); return; } System.out.println("Mostrando el contenido de: " + nombreArchivo + "\n"); try (FileReader fr = new FileReader(archivo)) { int caracter; for (caracter = fr.read(); caracter != -1; caracter = fr.read()) { System.out.print((char) caracter); } } catch (IOException e) { System.out.println("Error al leer el archivo: " + e.getMessage()); } } }