Agregar texto a un archivo de texto en Java
-
Agregar texto a un archivo de texto usando la clase
FileOutputStream
en Java -
Agregar texto a un archivo de texto usando la clase
FileWriter
en Java -
Agregar texto a un archivo de texto usando la clase
BufferedWriter
en Java -
Agregar texto a un archivo de texto usando la clase
Files
en Java - Agregar texto a un archivo de texto en Java
Este tutorial presenta cómo agregar texto a un archivo de texto existente en Java. También hemos enumerado algunos códigos de ejemplo para guiarlo mejor.
Leer y escribir son dos de las operaciones más básicas que puede realizar cuando trabaja con archivos. Hay varias formas de escribir o agregar datos a un archivo en Java. En este artículo, aprenderemos acerca de las cuatro formas diferentes de agregar a un archivo de texto.
Agregar texto a un archivo de texto usando la clase FileOutputStream
en Java
La clase FileOutputStream
se utiliza para escribir datos binarios en archivos. Se prefiere principalmente para tipos de datos primitivos como int
o float
, pero también se puede utilizar para escribir datos orientados a caracteres.
La cadena primero debe convertirse en un array de bytes antes de escribir; puede utilizar el método getBytes()
para este propósito. También necesitamos pasar true
como segundo argumento a su constructor. Este segundo argumento es para la bandera de anexión booleana, y está hecho para indicar que estamos intentando agregar a un archivo existente.
Si se ignora, la clase FileOutputStream
sobrescribirá el contenido del archivo. Creará un nuevo archivo si el archivo aún no está presente en la ubicación mencionada.
Aquí hay un ejemplo en el que intentamos agregar la oración The quick brown fox jumps over the lazy dog
a un archivo existente. Las \r
y \n
se utilizan para insertar el texto al comienzo de una nueva línea.
import java.io.FileOutputStream;
public class Main {
public static void main(String args[]) {
try {
String filePath = "C:\\Users\\Lenovo\\Desktop\\demo.txt";
FileOutputStream f = new FileOutputStream(filePath, true);
String lineToAppend = "\r\nThe quick brown fox jumps over the lazy dog";
byte[] byteArr = lineToAppend.getBytes(); // converting string into byte array
f.write(byteArr);
f.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
Agregar texto a un archivo de texto usando la clase FileWriter
en Java
La clase Java FileWriter
está diseñada para escribir secuencias de caracteres en un archivo. Podemos usarlo para agregar caracteres o cadenas a un archivo existente o un archivo nuevo. Si el archivo no está presente en la ruta mencionada, se crea un nuevo archivo y los datos se escriben en este nuevo archivo.
A diferencia de la clase anterior FileOutputStream
, no necesitamos convertir las cadenas en bytes antes de escribir. Sin embargo, también necesitamos pasar true
como segundo argumento al constructor FileWriter
, lo que indica que estamos intentando agregar a un archivo existente.
Si se omite, sobrescribirá el contenido existente del archivo. El siguiente código demuestra cómo podemos agregar una sola línea a un archivo existente usando FileWriter
.
import java.io.FileWriter;
public class SimpleTesting {
public static void main(String args[]) {
try {
String filePath = "C:\\Users\\Lenovo\\Desktop\\demo.txt";
FileWriter fw = new FileWriter(filePath, true);
String lineToAppend = "\r\nThe quick brown fox jumps over the lazy dog";
fw.write(lineToAppend);
fw.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
Agregar texto a un archivo de texto usando la clase BufferedWriter
en Java
La clase FileWriter
a menudo es envuelta por otros escritores como el BufferedWriter
. Este proceso se realiza porque un BufferedWriter
es mucho más eficiente que un FileWriter
.
Se prefiere el BufferedWriter
sobre el FileWriter
cuando tenemos varias operaciones de escritura. Utiliza una memoria intermedia interna para almacenar los datos que se deben agregar al archivo. Cuando este búfer esté lleno, o ya no tengamos nada más que agregar, el BufferedWriter
escribirá en el archivo real.
Escribe grandes porciones de datos en el archivo desde su búfer en lugar de escribir con frecuencia en él; esto conduce a menores llamadas al sistema. Por lo tanto, es mucho más eficiente que un FileWriter
normal.
Pero si tenemos una sola operación de escritura, entonces el BufferedWriter
agrega otro paso en el proceso de escritura. Entonces, sería mejor usar el FileWriter
.
Para usar el BufferedWriter
, primero necesitamos un objeto FileWriter
que pasaremos al constructor del BufferedWriter
. Asegúrese de utilizar true
para el indicador de adición.
El siguiente código demuestra el funcionamiento de BufferedWriter
en Java.
import java.io.BufferedWriter;
import java.io.FileWriter;
public class Main {
public static void main(String args[]) {
try {
String filePath = "C:\\Users\\Lenovo\\Desktop\\demo.txt";
FileWriter fw = new FileWriter(filePath, true);
BufferedWriter bw = new BufferedWriter(fw);
String lineToAppend = "\r\nThe quick brown fox jumps over the lazy dog";
bw.write(lineToAppend);
bw.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
Agregar texto a un archivo de texto usando la clase Files
en Java
La clase de utilidad Files
se agregó en Java 7 y proporciona otra forma de escribir datos en archivos; utilizamos el método Files.write()
para hacer esto. Este método requiere la ruta del archivo y también necesita que se agregue el array de bytes de la cadena.
También necesitamos especificar StandardOpenOption.APPEND
para agregar texto a un archivo existente. Asegúrese de que el archivo esté presente en la ruta indicada; de lo contrario, devolverá una NoSuchFileException
.
Este método no es el preferido si tenemos que escribir en el mismo archivo varias veces porque el archivo también se abrirá y cerrará varias veces, disminuyendo el rendimiento general.
El siguiente código a continuación demuestra cómo funciona el método Files.write()
en Java I/O.
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
public class Main {
public static void main(String args[]) {
try {
String file = "C:\\Users\\Lenovo\\Desktop\\demo.txt";
String lineToAppend = "\r\nThe quick brown fox jumps over the lazy dog";
byte[] byteArr = lineToAppend.getBytes();
Files.write(Paths.get(file), byteArr, StandardOpenOption.APPEND);
} catch (Exception e) {
System.out.println(e);
}
}
}
Agregar texto a un archivo de texto en Java
Java proporciona múltiples opciones para el manejo de archivos. Podemos agregar datos a un archivo usando FileOutputStream
, FileWriter
, BufferedWriter
o la clase de utilidad Files
.
Para las clases de utilidad FileOutputStream
y Files
, primero necesitamos convertir la cadena en un array de bytes y luego pasarla al método write()
.
Se prefiere el BufferedWriter
cuando tenemos que escribir una pequeña cantidad de datos varias veces en el mismo archivo. Por otro lado, las clases de utilidad FileWriter
y Files
realizarán múltiples llamadas al sistema para un gran número de escrituras; esto disminuye su rendimiento general.
Artículo relacionado - Java File
- Cómo eliminar los saltos de línea de un archivo en Java
- Cerrar un archivo en Java
- Archivos comprimidos en Java
- Comparar contenido de dos archivos en Java
- Crear y ejecutar un archivo JAR de Java
- Eliminar archivos en un directorio usando Java