FileReader

&

FilterWriter

Introducción

FileReader y FilterWriter son clases que implementamos en java para poder leer y escribir en archivos.

Nos permiten leer y escribir strem's de datos y archivos.

Un stream es una fuente o destino de bytes.


FileReader

Podemos abrir un archivo de texto para leer usando la clase FileReader. Esta clase tiene métodos que nos permiten leer caracteres. Sus constructores más comunes son:

 

FileReader(String filePath) 

FileReader(File fileObj)

 

FileReader no contiene métodos que nos permitan leer líneas completas, pero sí BufferedReader.

Podemos construir un BufferedReader a partir del FileReader

El archivo hay que cerrarlo cuando terminemos con él, tanto si todo ha ido bien como si ha habido algún error en la lectura después de haberlo abierto. 

 

Se suele poner al try-catch un bloque finally y dentro de él, el close() del archivo.

 

La apertura del archivo y la lectura de éste deben meterse en un bloque try-catch.

FileWriter

FileWriter crea un «Writer» que se puede utilizar para escribir en un archivo. Sus constructores más utilizados son: 

FileWriter(String filePath)  
  FileWriter(String filePath, boolean append)

 

La creación de un FileWriter no es dependiente del archivo ya existente.

 

FileWriter creará el archivo antes de abrirlo para la salida cuando se crea el objeto.

Buffer's

BufferedReader maneja un 'Buffer' es decir que primero captura en memoria todo lo que recibe y cuando éste se llena, manda el buffer.

 

BufferedWriter añade un “Buffer” para la escritura de caracteres, vectores o cadenas.

 

Esta forma de trabajar hace los accesos a disco más eficientes y el programa correrá más rápido. La diferencia se notará más cuanto mayor sea el archivo que queremos leer.

Conclusion

FileReader y FileWriter son clases del paquete java.io.

Podemos abrir un archivo de texto para leerlo usando la clase FileReader.

FileWriter crea un "writer" que se puede utilizar para escribir en archivo.

BufferedReader y BufferedWriter hacen los accesos al disco mas eficientes, agilizando el programa

Còdigo

package filesrw;

import java.io.*;

/**
 *
 * @author Rflpz
 */
public class FilesRW {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException{
        File f = new File("test.txt");
        if(!f.exists()){
            f.createNewFile();
            System.out.println("Archivo creado por primera vez");
        }
      
        FileWriter fw = new FileWriter(f,true);
        System.out.println("Tamaño de archivo " + f.length() + " caracteres");
        fw.write("Test total de " + f.length() + " caracteres\n");
        fw.close();
        FileReader fr = new FileReader(f);
        System.out.println("El archivo contiene "+fr.read());
        fr.close();
        
    }
    
}

Bibliografia

  • http://docs.oracle.com/javase/7/docs/api/java/io/Writer.html#append(char)
  • http://tutorials.jenkov.com/java-io/readers-writers.html
  • http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html
Made with Slides.com