Copiar archivo usando FileStreams en Java

La lógica principal de copiar un archivo es leer el archivo asociado con la variable FileInputStream y escribir el contenido leído en el archivo asociado con la variable FileOutputStream . Podemos copiar un archivo de una ubicación a otra usando las clases FileInputStream y FileOutputStream en Java. Ahora, antes de continuar, analicemos los métodos esenciales que se utilizarán en el programa. 

Método 1: read(): lee un byte de datos. Presente en FileInputStream. 

Tipo de retorno: un valor entero 

Sintaxis: Otras versiones 

int read(byte[] bytearray

or

int read(byte[] bytearray, int offset, int length)

Método 2: write(int b) : Escribe un byte de datos. Presente en FileOutputStream

Sintaxis:

void write(byte[] bytearray)

or

void write(byte[] bytearray, int offset, int length)

Implementación: crearemos dos archivos llamados «demo.rtf» y «outputdemo.rtf» como otro archivo donde no hay contenido. A continuación se muestra una imagen del archivo «demo.rtf» como imagen de entrada de muestra.

  • Primero, crearemos dos objetos de la clase File , uno referente a FileInputClass y el otro a FileOutputStream Class.
  • Ahora crearemos objetos de la clase FileInputStream y la clase FileOutputStream antes de crear variables y asignar valores nulos a los tipos de datos correspondientes.
  • Pase los objetos respectivos de los objetos FileInputStream y FileOutputStream
  • Ahora, usando bucles, siga leyendo de un archivo y escríbalo en otro archivo usando FileOuputStream usando los métodos read() y write().

Sugerencia: Es una buena práctica cerrar los flujos para evitar pérdidas de memoria.      

Ejemplo 1:

Java

// Java Program to Illustrate File InputStream and File
 
// Importing required classes
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
 
// Main class
class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
 
        // Creating object of File class
        // Passing files from directory of local machine
        File file = new File(
            "/Users/mayanksolanki/Desktop/demo.rtf");
        File oFile = new File(
            "/Users/mayanksolanki/Desktop/outputdemo.rtf");
 
        // Now creating object of FileInputStream
        // Here they are variables
        FileInputStream fis = null;
        FileOutputStream fos = null;
 
        try {
            // Now we make them as objects of both classes
            // and passed reference of file in directory
            fis = new FileInputStream(file);
            fos = new FileOutputStream(oFile);
        }
 
        // Catch block to handle exceptions
        catch (FileNotFoundException e) {
 
            // Display message if exception occurs
            // File Not Found or Path is Incorrect
            System.out.println(e.printStackTrace());
        }
 
        try {
 
            // Now let us check how many bytes are available
            // inside content of file
            fis.available();
        }
 
        catch (Exception e) {
            e.printStackTrace();
        }
 
        // Using while loop to
        // write over outputdemo file
        int i = 0;
        while (i = fis.read() != -1) {
            fos.write(i);
        }
 
        // It will execute no matter what
        // to close connections which is
        // always good practice
        finally
        {
 
            // Closing the file connections
 
            // For input stream
            if (fis != null😉 {
                fis.clsoe();
            }
 
            // For output stream
            if (fos != null) {
                fos.close();
            }
        }
    }
}

Salida: el mismo contenido se reflejará en el archivo «outputdemo.rtf» como se ve a continuación en el archivo «demo.rtf». 

Ejemplo 2:

Java

// Java Program Illustrating Copying a src File
// to Destination
 
// Importing required classes
import java.io.*;
 
// Main class
// src2dest
class GFG {
 
    // Main driver method
    public static void main(String args[])
        throws FileNotFoundException, IOException
    {
 
        // If file doesnot exist FileInputStream throws
        // FileNotFoundException and read() write() throws
        // IOException if I/O error occurs
        FileInputStream fis = new FileInputStream(args[0]);
 
        // Assuming that the file exists and
        // need not to be checked
        FileOutputStream fos
            = new FileOutputStream(args[1]);
 
        int b;
        while ((b = fis.read()) != -1)
            fos.write(b);
 
        // read() method will read only next int so we used
        // while loop here in order to read upto end of file
        // and keep writing the read int into dest file
        fis.close();
        fos.close();
    }
}

Producción:

Salida Explicación: El nombre del archivo src y el archivo de destino deben proporcionarse mediante argumentos de la línea de comandos, donde args[0] es el nombre del archivo de origen y args[1] es el nombre del archivo de destino. 

Este artículo es una contribución de Parul Dang . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *