• PrintWriter te permite escribir cosas, por ejemplo en
archivos, te genera el archivo nuevo, y en caso de que exista te lo sustituye.
import java.io.*; public class EscribirArchivo{ private static PrintWriter stdOut = new PrintWriter(new FileWriter("archivoSalida.txt"));
public static void main(String args[]){
stdOut.println(“Es un archivo de prueba"); stdOut.println("De escritura de datos"); stdOut.close(); } } • En la computadora, los archivos son un bitstream o "flujo de bits". Esto es para que se puedan construir fácilmente programas que puedan escribir a cualquier tipo de flujo, ya sean archivos, la pantalla, la impresora o una red. La clase que nos sirve para imprimir bits a un bitstream es PrintWriter. El constructor del PrintWriter recibe un FileWriter, esto se debe a que el PrintWriter sabe escribir a un flujo, pero no sabe a cuál, la clase FileWriter le permite escribir a un flujo de archivos. • El constructor de FileWriter es muy importante, puede recibir uno o dos parámetros, el primer parámetro es el nombre del archivo o un objeto de la clase File que represente el archivo que queremos abrir, el segundo (que es opcional) es un boolean que indica si se debe sobreescribir el archivo o escribir al final. • Hay dos maneras de escribir a un archivo una vez que ya tenemos el PrintWriter, pero primero tenemos que entender una cosa de esta clase. El PrintWriter es un buffer, como una caja en la que se guarda lo que se va a escribir al archivo y una vez que ya está todo listo se manda al archivo. • Para mandar un String a un archivo de texto podemos utilizar dos métodos, el primero es println() que recibe una línea de texto y la imprime en el archivo con un cambio de línea ("\n") al final, • El segundo método que se utiliza frecuentemente es el método print que funciona básicamente de la misma manera, pero no pone un salto de línea al final y no imprime los datos al archivo sino únicamente los deja en el buffer, por lo que tenemos que utilizar el método flush() para que lo imprima al archivo. • Es muy importante recordar que debemos cerrar el archivo al terminar de utilizarlo, ya que en caso contrario no estamos seguros de que todos los cambios se guarden en el archivo. Para poder cerrar el archivo utilizamos el método close() del PrintWriter. • Aplicación de los streams a la lectura y escritura en disco EscribeEnDisco.java import java.io.*; public class EscribeEnDisco { public static void main(String args[]) { FileOutputStream fos = null; PrintWriter pw = null; Crea el fichero para guardar los datos File ficheroDeSalida = new File("c:/Javadir/historia", "salida.txt"); try { fos = new FileOutputStream(ficheroDeSalida); } catch (IOException e) { System.out.println(e); } catch(SecurityException e) { System.out.println(e); } pw = new PrintWriter(fos); Escribe una secuencia de texto en el fichero for (int i = 0; i < 10; i++) { pw.println("Linea " + i + " " + System.currentTimeMillis()); } Escribir realmente en el disco pw.flush(); Cerrar Streams try { fos.close(); } catch(IOException e) { System.out.println(e); } } }