FileOutputStream en Java

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?

Writing data to a File

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

Hierarchy of 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

Before Running the program

Después de ejecutar el programa

Se crea el archivo myfile.txt y se guarda el texto “TATA” en el archivo.

After Running the programData written to File

Algunos métodos importantes

1.   Método de escritura():

  • 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

Deja una respuesta

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