Método de copia de archivos() en Java con ejemplos

El método copy() de java.nio.file.Files Class se utiliza para copiar bytes de un archivo a flujos de E/S o de flujos de E/S a un archivo. Flujo de E/S significa una fuente de entrada o un destino de salida que representa diferentes tipos de fuentes, por ejemplo, archivos de disco.

Métodos: según el tipo de argumentos pasados, la clase Files proporciona 3 tipos de método copy().

  1. Usando el método copy(InputStream in, Path target, CopyOption…)
  2. Usando el método de copia (fuente de ruta, salida de flujo de salida)
  3. Uso de la copia (origen de la ruta, destino de la ruta, opciones CopyOption…) Método

Método 1: usar las opciones copy( InputStream in, Path target, CopyOption…)

 Este método se utiliza para copiar todos los bytes de un flujo de entrada a un archivo.

Parámetros:

  • in: el flujo de entrada cuyos datos se copiarán
  • destino: la ruta del archivo donde se copiarán los datos
  • opciones: opciones que describen las formas en que se copiarán los datos

Tipo de devolución: número de bytes copiados

Excepciones:

  • IOException: si al leer o escribir se produjo un error
  • FileAlreadyExistsException: si el archivo de destino ya existe y no se puede reemplazar
  • DirectoryNotEmptyException: si el archivo de destino no se puede reemplazar porque no es un directorio vacío
  • UnsupportedOperationException: si la forma de copiar descrita por una opción no es compatible
  • SecurityException: si el administrador de seguridad deniega el acceso de escritura al archivo de destino

Implementación:

Ejemplo

Java

// Importing classes from java.nio package as
// this package is responsible for network linking
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
 
// Main Class
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
        // Input custom string
        String text = "geeksforgeeks";
 
        // Path of the file where data is to be copied
        Path path = (Path)Paths.get("/usr", "local", "bin",
                                    "fileIn.txt");
 
        System.out.println("Path of target file: "
                           + path.toString());
 
        // Byte stream whose data is to be copied
        InputStream in
            = new ByteArrayInputStream(text.getBytes());
 
        // Try block to check for exceptions
        try {
 
            // Printing number of copied bytes
            System.out.println(
                "Number of bytes copied: "
                + Files.copy(
                    in, path,
                    StandardCopyOption.REPLACE_EXISTING));
        }
 
        // Catch block to handle the exceptions
        catch (IOException e) {
 
            // Print the line number where exception occurred
            e.printStackTrace();
        }
    }
}

 Producción:

Path of target file: /usr/local/bin/fileIn.txt
Number of bytes copied: 13

Método 2: usar el método de copia (origen de ruta, salida de flujo de salida)

Este método se utiliza para copiar todos los bytes de un archivo a un flujo de salida. 

Parámetros: Se necesitan dos a saber 

  • origen: la ruta del archivo cuyos datos se copiarán
  • out: el flujo de salida donde se escribirán los datos copiados

Tipo de devolución: número de bytes copiados

Excepciones: 

  • IOException: si al leer o escribir se produjo un error
  • SecurityException: si el administrador de seguridad deniega el acceso de lectura al archivo de destino 

Implementación:

Ejemplo

Java

// Importing classes from java.nio package as
// this package is responsible for network linking
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
 
// Main Class
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
 
        // Path of file whose data is to be copied
        Path path = (Path)Paths.get("/usr", "local", "bin",
                                    "fileOut.txt");
 
        // Getting the path of source file
        System.out.println("Path of source file: "
                           + path.toString());
 
        // Output stream where data is to written
        OutputStream out = new ByteArrayOutputStream();
 
        // Try block to check for exceptions
        try {
            // Printing number of copied bytes
            System.out.println("Number of bytes copied: "
                               + Files.copy(path, out));
        }
 
        // Catch block to handle the exception
        catch (IOException e) {
 
            // Print the line number where exception occurred
            e.printStackTrace();
        }
    }
}

 Producción:

Path of source file: /usr/local/bin/fileOut.txt
Number of bytes copied: 13

 Método 3: Uso de la copia (origen de la ruta, destino de la ruta, opción de copia…) Método

Este método se utiliza para copiar un archivo a un archivo de destino.

Parámetros:

  • origen: la ruta del archivo cuyos datos se copiarán
  • destino: la ruta del archivo donde se copiarán los datos
  • opciones: opciones que describen las formas en que se copiarán los datos

 Tipo de devolución: la ruta al archivo donde se copian los datos

Excepciones: 

  • IOException: si al leer o escribir se produjo un error
  • FileAlreadyExistsException: si el archivo de destino ya existe y no se puede reemplazar
  • DirectoryNotEmptyException: si el archivo de destino no se puede reemplazar porque no es un directorio vacío
  • UnsupportedOperationException: si la forma de copiar descrita por una opción no es compatible
  • SecurityException: si el administrador de seguridad deniega el acceso de escritura al archivo de destino

Implementación:

Ejemplo

Java

// Importing classes from java.nio package as
// this package is responsible for network linking
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
 
// Main Class
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
        // Path of file where data is to copied
        Path pathIn = (Path)Paths.get("/usr", "local",
                                      "bin", "fileIn.txt");
        // Path of file whose data is to be copied
        Path pathOut = (Path)Paths.get(
            "/usr", "local", "bin", "fileOut.txt");
 
        System.out.println("Path of target file: "
                           + pathIn.toString());
 
        System.out.println("Path of source file: "
                           + pathOut.toString());
 
        // Try block to check for exceptions
        try {
 
            // Printing number of bytes copied
            System.out.println(
                "Number of bytes copied: "
                + Files.copy(
                    pathOut, pathIn,
                    StandardCopyOption.REPLACE_EXISTING));
        }
 
        // Catch block to handle the exceptions
        catch (IOException e) {
 
            // Print the line number where exception occurred
            e.printStackTrace();
        }
    }
}

 Producción:

Path of target file: /usr/local/bin/fileIn.txt
Path of source file: /usr/local/bin/fileOut.txt
Number of bytes copied: 13 

Publicación traducida automáticamente

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