Tarea 10: Escritura de Ficheros de Texto con PrintWriter
Explicación del Ejercicio
En esta tarea se reescribe el ejercicio anterior con PrintWriter, que permite escribir en un fichero con los mismos métodos que se usan para la consola (println y printf). Después se lee el fichero con BufferedReader para comprobar su contenido.
Conceptos y métodos clave:
-
Escritura formateada (
PrintWriter): Se crea a partir de unFileWritery ofreceprintln()yprintf(), sin necesidad de llamar anewLine(). -
Cadenas de formato (
printf):%dsustituye un entero y%ninserta el salto de línea del sistema operativo. -
Gestión de errores: Los métodos de
PrintWriterno lanzanIOException. La excepción que se captura proviene de la creación delFileWriter. -
Comprobación del resultado: El fichero se vuelve a abrir con
BufferedReadery se recorre conreadLine()hasta que devuelvenull, como en la Tarea 6.
Código Fuente y Salida
Clase9.java
package ClaseFile;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
/**
* @author Eva Gallardo Romero
* @date 25 de sep de 2026
* Reescribir el ejercicio anterior utilizando PrintWriter.
* Se guarda la tabla del 9 en el fichero "tabla9.txt" con println y printf
* y después se lee el fichero para comprobar que se ha escrito bien.
*/
public class Clase9 {
public static void main(String[] args) {
// objeto File del fichero que voy a escribir
File fichero = new File("tabla9.txt");
// PrintWriter permite usar println y printf igual que System.out
try (PrintWriter pw = new PrintWriter(new FileWriter(fichero))) {
// escribo un título con println
pw.println("TABLA DEL 9");
// escribo cada fila con printf
for (int i = 1; i <= 10; i++) {
pw.printf("9 x %d = %d%n", i, 9 * i);
}
} catch (IOException e) {
System.out.println("Error de E/S: " + e.getMessage());
return;
}
// leo el fichero línea a línea para comprobar el resultado
System.out.println("Contenido de " + fichero.getName() + ":");
try (BufferedReader br = new BufferedReader(new FileReader(fichero))) {
String linea;
while ((linea = br.readLine()) != null) {
System.out.println(linea);
}
} catch (IOException e) {
System.out.println("Error al leer el fichero: " + e.getMessage());
}
}
}
Resultado Mostrado por Terminal
Salida de Consola
Contenido de tabla9.txt:
TABLA DEL 9
9 x 1 = 9
9 x 2 = 18
9 x 3 = 27
9 x 4 = 36
9 x 5 = 45
9 x 6 = 54
9 x 7 = 63
9 x 8 = 72
9 x 9 = 81
9 x 10 = 90