- 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.