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().
- Usando el método copy(InputStream in, Path target, CopyOption…)
- Usando el método de copia (fuente de ruta, salida de flujo de salida)
- 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