Llegamos a la tercera parte de este mini curso de manejo de archivos con Java. En concreto, te voy a enseñar, a crear nuevos archivos y a escribir en ellos con Java. Lo haremos con la clase FileOutputStream.
Los otros dos capítulos, los tienes aquí:
1 – Introducción al manejo de archivos con Java.
Importar la clase FileOutputStream
Empecemos importando las clases necesarias para la práctica:
import java.io.FileOutputStream; import java.io.IOException;
La primera nos servirá para escribir en los archivos y la segunda para manejar posibles excepciones.
Código base para escribir archivos con Java
Empecemos con una estructura básica para que te sea más fácil seguir la práctica:
import java.io.FileOutputStream; import java.io.IOException; public class Main { public static void main(String[] args) { try { // Código del programa aquí } catch (IOException e) { System.out.println("Error al escribir en el archivo: " + e.getMessage()); } } }
Escribiendo el código
Lo primero que vamos a añadir, es un objeto de tipo FileOutputStream, así controlaremos el flujo de datos para crear el nuevo archivo. Pongo la parte del try, que es la que nos queda por ir completando y así no repito tanto código.
try { FileOutputStream archivoSalida = new FileOutputStream("archivos/texto_salida.txt"); }
Este objeto está indicando la ruta donde se creará el archivo. Este se llamará «texto_salida.txt».
Ahora, con este objeto creado, ya podemos utilizar métodos de la clase FileOutputStream.
Vamos a añadir el texto de salida, el que se va a añadir al archivo:
try { FileOutputStream archivoSalida = new FileOutputStream("archivos/texto_salida.txt"); String texto = "Mensaje de prueba."; }
Ahora, vamos a convertir el texto del string a un array de bytes. Así, podremos utilizar el método write() del objeto de tipo FileOutputStream.
try { FileOutputStream archivoSalida = new FileOutputStream("archivos/texto_salida.txt"); String texto = "Mensaje de prueba."; byte[] bytes = texto.getBytes(); }
Le pasamos al método write() el array con los bytes correspondientes al texto que queremos insertar en el nuevo archivo.
Si el archivo TXT no existe, no da error, lo crea y escribe en él. Si ya existe, lo reemplaza, así que ten cuidado. No querrás perder datos por un fallo así.
try { FileOutputStream archivoSalida = new FileOutputStream("archivos/texto_salida.txt"); String texto = "Mensaje de prueba."; byte[] bytes = texto.getBytes(); archivoSalida.write(bytes); }
Finalmente, cerramos el archivo con el método close() y mostramos un mensaje en la consola para indicar que se ha creado correctamente.
try { FileOutputStream archivoSalida = new FileOutputStream("archivos/texto_salida.txt"); String texto = "Mensaje de prueba."; byte[] bytes = texto.getBytes(); archivoSalida.write(bytes); archivoSalida.close(); System.out.println("Archivo escrito con éxito."); }
Código completo – Escribir archivos en Java
import java.io.FileOutputStream; import java.io.IOException; public class Main { public static void main(String[] args) { try { // Crea el objeto FileOutputStream archivoSalida = new FileOutputStream("archivos/texto_salida.txt"); // Texto para escribir String texto = "Mensaje de prueba."; // Array de bytes para el texto byte[] bytes = texto.getBytes(); // Escribe el texto en el archivo archivoSalida.write(bytes); // Cierra el archivo archivoSalida.close(); // Confirma en la consola la escritura correcta System.out.println("Archivo escrito con éxito."); // En caso de error... } catch (IOException e) { System.out.println("Error al escribir en el archivo: " + e.getMessage()); } } }
Dejamos aquí este capítulo para escribir en archivos con Java. En el siguiente, te enseñaré a añadir texto a archivos que ya tienen contenido, sin reemplazarlo. En muchas ocasiones, te servirá simplemente crear un archivo nuevo cada vez.