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 objetoFiley 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étodoread()devuelve el código entero del carácter leído en un rango de 0 a 65535, o el valor-1cuando alcanza el final del fichero (EOF). -
Casteo explícito (
(char) caracter): Dado queread()retorna unint, se convierte explícitamente a tipocharpara reconstruir y mostrar el texto por consola. -
Gestión automática de recursos (
try-with-resources): Garantiza que el recurso delFileReaderse 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());
}
}
}