FileOutputStream es un flujo de salida para escribir datos/flujos de bytes sin formato en un archivo o almacenar datos en un archivo. FileOutputStream es una subclase de OutputStream . Para escribir valores primitivos en un archivo, usamos la clase FileOutputStream. Para escribir datos orientados a bytes y orientados a caracteres, podemos usar FileOutputStream pero para escribir datos orientados a caracteres, se prefiere FileWriter .
¿Qué significa almacenar datos en archivos?
A través de la imagen de arriba, podemos entender que cuando ejecutamos el programa java, los datos se almacenan en la memoria RAM. Ahora, supongamos que los datos variables almacenados en la RAM, queremos acceder a esos datos y llevarlos a un archivo en nuestro disco duro. Entonces, crearemos un objeto de OutputStream en la RAM y eso apuntará a un archivo que hace referencia al disco duro.
Ahora, los datos del archivo de datos variables en la RAM irán al archivo de referencia (objeto de Output Stream) y desde allí serán transferidos/almacenados en el archivo del disco duro.
Jerarquía de FileOutputStream
Constructores de FileOutputStream
1. FileOutputStream (archivo de archivo): crea un flujo de salida de archivo para escribir en el archivo representado por el objeto de archivo especificado.
FileOutputStream fout = new FileOutputStream(File file);
2. FileOutputStream (File file, boolean append): crea un objeto de flujo de salida de archivo representado por el objeto de archivo especificado.
FileOutputStream fout = new FileOutputStream(File file, boolean append);
3. FileOutputStream(FileDescripter fdobj): crea un flujo de salida de archivo para escribir en el descriptor de archivo especificado, que representa una conexión existente con el archivo real en el sistema de archivos.
FileOutputStream fout = new FileOutputStream(FileDescripter fdobj);
4. FileOutputStream (nombre de string): crea un objeto de flujo de salida de archivo para escribir en el archivo con el nombre particular mencionado.
FileOutputStream fout = new FileOutputStream( Nombre de la string);
5. FileOutputStream (nombre de string, anexo booleano): crea un objeto de flujo de salida de archivo para escribir en el archivo con el nombre especificado.
FileOutputStream fout = new FileOutputStream( Nombre de string, anexo booleano);
Declaración:
public class FileOutputStream extends OutputStream
Pasos para escribir datos en un archivo usando FileOutputStream:
- Primero, adjunte una ruta de archivo a un FileOutputStream como se muestra aquí:
FileOutputStream fout = new FileOutputStream(“file1.txt”);
- Esto nos permitirá escribir datos en el archivo. Luego, para escribir datos en el archivo, debemos escribir datos usando FileOutputStream como,
fout.write();
- Entonces deberíamos llamar al método close() para cerrar el archivo fout.
fout.close()
Ejemplo:
Necesitamos importar el paquete java.io para usar la clase FileOutputStream.
Java
// java program to use FileOutputStream object for writing // data import java.io.*; class FileExample { public static void main(String[] args) throws IOException { int i; // create a fileoutputstream object FileOutputStream fout = new FileOutputStream("../files/name3.txt", true); // we need to transfer this string to files String st = "TATA"; char ch[] = st.toCharArray(); for (i = 0; i < st.length(); i++) { // we will write the string by writing each // character one by one to file fout.write(ch[i]); } // by doing fout.close() all the changes which have // been made till now in RAM had been now saved to // hard disk fout.close(); } }
Los datos (es decir, la string TATA se transferirán al archivo.
Antes de ejecutar el programa
Después de ejecutar el programa
Se crea el archivo myfile.txt y se guarda el texto “TATA” en el archivo.
Algunos métodos importantes
- write() : esto escribe el byte único en el flujo de salida del archivo.
- write(byte[] array) : esto escribe los bytes de la array especificada en el flujo de salida.
- write(byte[] array, int start, int length) : esto escribe el número de bytes igual a length en el flujo de salida de una array a partir de la posición de inicio.
Ejemplo:
Java
// java program to write data to file import java.io.FileOutputStream; import java.util.*; public class Main { public static void main(String[] args) { String data = "Welcome to GfG"; try { FileOutputStream output = new FileOutputStream("output.txt"); // The getBytes() method used // converts a string into bytes array. byte[] array = data.getBytes(); // writing the string to the file by writing // each character one by one // Writes byte to the file output.write(array); output.close(); } catch (Exception e) { e.getStackTrace(); } } }
When we run the program, the "Welcome to GfG" line is copied to output.txt file.
2. vaciar():
Para limpiar OutputStream, usamos el método flush(). Este método obliga a que todos los datos se almacenen en su destino.
Ejemplo:
Java
// java program to show the usage of flush() method import java.io.FileOutputStream; import java.io.IOException; public class Main { public static void main(String[] args) throws IOException { FileOutputStream out = null; String data = "Welcome to GfG"; try { out = new FileOutputStream(" flush.txt"); // Using write() method out.write(data.getBytes()); // Using the flush() method out.flush(); out.close(); } catch (Exception e) { e.getStackTrace(); } } }
If, we run the program, the file flush.txt is filled with the text of the string"Welcome to GfG"
3. método close() :
Este método cierra el archivo OutputStream. Una vez que se llama, no podemos usar otros métodos.
Métodos de fileOutputStream
Método | Descripción |
---|---|
anular cerrar() | Cierra el flujo de salida del archivo. |
vacío protegido finalizar() | Se utiliza para limpiar toda la conexión con el flujo de salida del archivo y finalizar los datos. |
canal de archivo getChannel() | Devuelve el objeto FileChannel único asociado con este flujo de salida de archivo. |
Descriptor de archivo getFD() | Devuelve el descriptor de archivo asociado con la transmisión. |
escritura nula (int b) | Se utiliza para escribir el byte especificado en el flujo de salida del archivo. |
escritura vacía (byte [] arr) | Se utiliza para escribir datos en bytes de arr[] en el flujo de salida del archivo. |
escritura vacía (byte [] ary, int off, int len) | Se utiliza para escribir el número de bytes igual a la longitud del flujo de salida de una array que comienza desde la posición de inicio. |
Métodos declarados en la clase OutputStream
Método | Descripción |
---|---|
enjuagar() | este método obliga a escribir todos los datos presentes en el flujo de salida en el destino (disco duro). |
nullOutputStream() | este método devuelve un nuevo OutputStream que descarta todos los bytes. El flujo devuelto está inicialmente abierto. |
Referencia: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/FileOutputStream.html
Publicación traducida automáticamente
Artículo escrito por goelshubhangi3118 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA