Resumen: en este post te mostraré a escribir datos a un archivo usando el lenguaje de programación Java. Vamos a ver cómo agregar contenido a un archivo de texto.
Veremos dos opciones: cómo adjuntar texto al archivo, y cómo remplazar el contenido.
Las clases que veremos son:
- FileWriter
- BufferedWriter
- IOException
Escribir archivo y remplazar el contenido
Veamos este método. Si el archivo no existe, es creado.
Comenzamos definiendo el nombre del archivo en el que vamos a escribir. Luego creamos un BufferedWriter
pasándole un nuevo FileWriter
, que es al que indicamos el nombre del archivo.
El nombre del archivo puede ser relativo o absoluto.
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.IOException;
/*
Escribir un archivo de texto con Java
https://parzibyte.me/blog
*/
class Main {
public static void main(String[] args) {
String nombreArchivo = "ejemplo.txt";
try {
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(nombreArchivo));
bufferedWriter.write("Programando en Java\n");
bufferedWriter.write("parzibyte.me\n");
bufferedWriter.close();
} catch (IOException e) {
System.out.println("Error escribiendo en archivo: " + e.getMessage());
}
}
}
Después de eso, podemos llamar al método write
del BufferedWriter
, pasándole el contenido del archivo.
Finalmente cerramos el BufferedWriter
con el método close
.
Todo eso lo encerramos dentro de un try
/ catch
porque al trabajar con archivos se puede generar una IOException
.
Adjuntar el contenido al archivo con Java
En este segundo ejemplo para trabajar con archivos en Java vemos cómo adjuntar el contenido al archivo.
De igual manera, si el fichero de texto no existe, el mismo es creado. Todo funciona de la misma manera, y el código solo cambia cuando creamos el FileWriter
.
El segundo argumento de FileWriter ahora está en true
, el cual indica si el texto debería ser agregado.
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.IOException;
/*
Escribir un archivo de texto con Java
pero no sobrescribir contenido, sino adjuntar
https://parzibyte.me/blog
*/
class Main {
public static void main(String[] args) {
String nombreArchivo = "ejemplo.txt";
try {
// El truco está en pasar true al FileWriter
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(nombreArchivo, true));
bufferedWriter.write("Adjuntar el contenido, no sobrescribirlo\n");
bufferedWriter.write("parzibyte.me\n");
bufferedWriter.close();
} catch (IOException e) {
System.out.println("Error escribiendo en archivo: " + e.getMessage());
}
}
}
Si ejecutas varias veces este archivo de Java, verás que el contenido se va adjuntando al final.