Categorías
I/O

¿Cómo escribir un archivo línea por línea en Java?

Esta publicación resume las clases que se pueden usar para escribir un archivo.

1. FileOutputStream

public static void writeFile1() throws IOException {
	File fout = new File("out.txt");
	FileOutputStream fos = new FileOutputStream(fout);
 
	BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));
 
	for (int i = 0; i < 10; i++) {
		bw.write("something");
		bw.newLine();
	}
 
	bw.close();
}

Este ejemplo usa FileOutputStream, en su lugar puede usar FileWriter o PrintWriter, que normalmente es lo suficientemente bueno para las operaciones de un archivo de texto.

2. FileWriter

public static void writeFile2() throws IOException {
	FileWriter fw = new FileWriter("out.txt");
 
	for (int i = 0; i < 10; i++) {
		fw.write("something");
	}
 
	fw.close();
}

3. PrintWriter

public static void writeFile3() throws IOException {
	PrintWriter pw = new PrintWriter(new FileWriter("out.txt"));
 
	for (int i = 0; i < 10; i++) {
		pw.write("something");
	}
 
	pw.close();
}

4. OutputStreamWriter

public static void writeFile4() throws IOException {
	File fout = new File("out.txt");
	FileOutputStream fos = new FileOutputStream(fout);
 
	OutputStreamWriter osw = new OutputStreamWriter(fos);
 
	for (int i = 0; i < 10; i++) {
		osw.write("something");
	}
 
	osw.close();
}
  Leer bytes de FileInputStream en Java

5. Sus diferencias

Desde Java Doc:

FileWriter es una clase práctica para escribir archivos de caracteres. Los constructores de esta clase asumen que la codificación de caracteres predeterminada y el tamaño de búfer de bytes predeterminado son aceptables. Para especificar estos valores usted mismo, construya un OutputStreamWriter en un FileOutputStream.

PrintWriter imprime representaciones formateadas de objetos en un flujo de salida de texto. Esta clase implementa todos los métodos de impresión que se encuentran en PrintStream. No contiene métodos para escribir bytes sin formato, para lo cual un programa debería usar flujos de bytes no codificados.

La principal diferencia es que PrintWriter ofrece algunos métodos adicionales para formatear, como println y printf. Además, FileWriter lanza IOException en caso de cualquier falla de E / S. Los métodos PrintWriter no arrojan IOException, sino que establecen una bandera booleana que se puede obtener usando checkError (). PrintWriter invoca automáticamente a flush después de que se escribe cada byte de datos. En el caso de FileWriter, la persona que llama debe encargarse de invocar flush.

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *