Hola a todos, hoy os explicare como utilizar las clases BufferedReader y BufferedWriter en Java.
Las clases BufferedReader y BufferedWriter las podemos encontrar en java.io.
Estas clases tienen la misma función que FileReader y FileWriter, leer y escribir en ficheros, pero BufferedReader y BufferedWriter optimizan estas funciones.
Se crean igual que FileReader y FileWriter, pero como parámetro insertaremos un objeto FileReader para BufferedReader y un objeto FileWriter para BufferedWriter.
FileWriter fw=new FileWriter("D:\\fichero1.txt"); FileReader fr=new FileReader("D:\\fichero1.txt");<br /><br />BufferedReader br=new BufferedReader(fr); BufferedWriter bw=new BufferedWriter(fw);
Otra forma de crear los buffered es asi:
BufferedReader br=new BufferedReader(new FileReader("D:\\fichero1.txt")); BufferedWriter bw=new BufferedWriter(new FileWriter("D:\\fichero1.txt"));
La mayor ventaja de los buffered es con el BufferedReader que nos permite leer una linea completa, en lugar de carácter a carácter como hacia FileReader, cuando el fichero termina, devuelve null, no un -1 como en FileReader.
Con BufferedWriter también podemos añadir una linea, como si pulsáramos un Enter.
Veamos un ejemplo practico.
import java.io.*; //Importamos todas las clases de java.io. public class FicheroTextoBufferedApp { public static void main(String[] args) { try(BufferedReader br=new BufferedReader(new FileReader("D:\\fichero1.txt")); BufferedWriter bw=new BufferedWriter(new FileWriter("D:\\fichero1.txt"));){ //Escribimos en el fichero bw.write("Esto es una prueba usando Buffered"); bw.newLine(); bw.write("Seguimos usando Buffered"); //Guardamos los cambios del fichero bw.flush(); //Leemos el fichero y lo mostramos por pantalla String linea=br.readLine(); while(linea!=null){ System.out.println(linea); linea=br.readLine(); } }catch(IOException e){ System.out.println("Error E/S: "+e); } } }
Ahora veremos el mismo ejemplo pero con métodos.
import java.io.*; //Importamos todas las clases de java.io. public class FicheroTextoBufferedApp { public static void main(String[] args) { try(BufferedReader br=new BufferedReader(new FileReader("D:\\fichero1.txt")); BufferedWriter bw=new BufferedWriter(new FileWriter("D:\\fichero1.txt"));){ escribeFichero(bw); //Guardamos los cambios del fichero bw.flush(); leeFichero(br); }catch(IOException e){ System.out.println("Error E/S: "+e); } } public static void escribeFichero(BufferedWriter bw) throws IOException{ //Escribimos en el fichero bw.write("Esto es una prueba usando Buffered"); bw.newLine(); bw.write("Seguimos usando Buffered"); } public static void leeFichero(BufferedReader br) throws IOException{ //Leemos el fichero y lo mostramos por pantalla String linea=br.readLine(); while(linea!=null){ System.out.println(linea); linea=br.readLine(); } } }
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
Amigo como hago para crear un diccionario de ingles a español, leyendo un .txt
Buenas noches,
¿podría utilizarse un BufferedWriter para escribir únicamente a un elemento en un fichero xml?
Actualmente tengo este problema y todavía no he encontrado la forma de resolverlo.
La necesidad viene porque en mi objeto java, que se mapea contra xml utilizando jaxb, le llega un flujo de datos continuo (valores double) y necesito ir grabando tal cual llegan a un elemento en concreto del fichero xml.
Muchas gracias.
Muy buenas, me parece muy interesante y fácil de comprender tu trabajo pero quería comentarte que cuando accedo a «Clases FileInputStream y FileOutputStream para ficheros binarios» me trae a esta dirección, así que me he quedado con ganas de ver los FileInputStream y FileOutputStream
Con el bufferedWriter se puede sobreescribir un archivo?
si
como hago si tiene varios campos?
por ej: Martes,14,abril,2030
Hola, no entiendo la diferencia entre FileReader y Buffered… me refiero a que este ultimo en teoria lee un linea completa, pero aun asi se sigue recorriendo con un bucle para mostrarlo ? si es un string no se puede poner system.out.println (+linea);???saludos. muy buena la web.
Buenas tardes .
Como le hago para cargar datos de una tabla de base de datos en el BufferedWriter para crear un archivo TXT.
Saludos.
dioses es lo que sois