- Clase Reader
- – FileReader
- – BufferedReader*
- Clase Writer
- – FileWriter
- – BufferedWriter*
Para evitar que cada lectura o escritura acceda directamente al fichero, se puede utilizar un buffer intermedio entre el disco y el stream.
Si queremos leer o escribir líneas completas, usaremos BufferedReader y BufferedWriter; con sus métodos readLine() y write() junto con newLine() respectivamente.
La clase BufferedWriter dispone de métodos para escribir líneas completas
Ejemplo: LeerficheroBuffer
import java.io.*; public class LeerFichTextoBuf { public static void main(String[] args) { try{ File fic = new File("FichTexto.txt");//declara fichero BufferedReader fichero = new BufferedReader( new FileReader(fic)); String linea; while((linea = fichero.readLine())!=null) System.out.println(linea); fichero.close(); } catch (FileNotFoundException fn ){ System.out.println("No se encuentra el fichero");} catch (IOException io) { System.out.println("Error de E/S ");} } }
Ejemplo: EscribirFicheroTextoBuffer
import java.io.*; public class EscribirFichTextoBuf { public static void main(String[] args) { try{ BufferedWriter fichero = new BufferedWriter (new FileWriter("FichTexto1.txt")); for (int i=1; i<11; i++){ fichero.write("Fila numero: "+i); //escribe una línea fichero.newLine(); //escribe un salto de línea } fichero.close(); } catch (FileNotFoundException fn ){ System.out.println("No se encuentra el fichero");} catch (IOException io) { System.out.println("Error de E/S ");} } }
Otra clase para escribir en un fichero
PrintWriter: También para escribir en un fichero tenemos la clase PrintWrite que deriva de Writer y con los métodos se puede escribir en fichero de forma similar a System.out
- print(String s)
- println(String s)
http://docs.oracle.com/javase/7/docs/api/java/io/PrintWriter.html
Ejercicio:
Reescribe el ejemplo anterior EscribirFichTextoBuf utilizando la clase PrintWrite y su método println.