Copiar archivos utilizando la clase Files de Java

JavaJavaBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá a copiar un archivo a otro archivo en Java. Hay varias maneras de copiar un archivo, como utilizar FileInputStream, FileOutputStream y la clase Files. Aquí, nos centraremos en la clase Files, que es más fácil de usar porque proporciona un método copy() que copia instantáneamente el archivo fuente al archivo destino.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/ConcurrentandNetworkProgrammingGroup(["Concurrent and Network Programming"]) java(("Java")) -.-> java/FileandIOManagementGroup(["File and I/O Management"]) java/FileandIOManagementGroup -.-> java/files("Files") java/FileandIOManagementGroup -.-> java/create_write_files("Create/Write Files") java/FileandIOManagementGroup -.-> java/io("IO") java/FileandIOManagementGroup -.-> java/stream("Stream") java/FileandIOManagementGroup -.-> java/nio("NIO") java/ConcurrentandNetworkProgrammingGroup -.-> java/working("Working") subgraph Lab Skills java/files -.-> lab-117430{{"Copiar archivos utilizando la clase Files de Java"}} java/create_write_files -.-> lab-117430{{"Copiar archivos utilizando la clase Files de Java"}} java/io -.-> lab-117430{{"Copiar archivos utilizando la clase Files de Java"}} java/stream -.-> lab-117430{{"Copiar archivos utilizando la clase Files de Java"}} java/nio -.-> lab-117430{{"Copiar archivos utilizando la clase Files de Java"}} java/working -.-> lab-117430{{"Copiar archivos utilizando la clase Files de Java"}} end

Importar las bibliotecas necesarias

En el nuevo archivo Java, importe las bibliotecas necesarias utilizando el siguiente código:

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.io.File;
import java.io.FileInputStream;

Crear un objeto de archivo

Cree un objeto de archivo que apunte al archivo fuente que necesita ser copiado.

File source = new File("sourceFile.txt");

Crear un objeto de archivo de destino

Crea un objeto de archivo de destino que apunte al archivo donde quieres copiar los datos del archivo fuente.

File destination = new File("destinationFile.txt");

Utilizar la clase Files para copiar los datos

Utiliza la clase Files para copiar los datos del archivo fuente al archivo de destino. Puedes utilizar el método copy() de la clase Files para hacer esto.

Path sourcePath = Paths.get(source.getAbsolutePath());
OutputStream destinationStream = new FileOutputStream(destination);
Files.copy(sourcePath, destinationStream);

Utilizar FileInputStream y FileOutputStream para copiar los datos

En este método, usaremos FileInputStream y FileOutputStream para copiar los datos. Utiliza el siguiente código para leer los datos del archivo fuente y escribir los datos utilizando el método write() de FileOutputStream.

FileInputStream sourceStream = new FileInputStream(source);
FileOutputStream destinationStream = new FileOutputStream(destination);

byte[] buffer = new byte[1024];
int bytesRead;

while ((bytesRead = sourceStream.read(buffer)) > 0) {
    destinationStream.write(buffer, 0, bytesRead);
}

sourceStream.close();
destinationStream.close();

Compilar el programa

Abre una terminal y navega hasta el directorio ~/proyecto. Compila el programa usando el siguiente comando:

javac CopyFile.java

Ejecutar el programa

Ejecuta el programa usando el siguiente comando:

java CopyFile

Resumen

En este laboratorio, aprendiste cómo copiar datos de un archivo a otro utilizando la clase Files y FileInputStream y FileOutputStream. La clase Files es más fácil de usar porque proporciona un método copy() que copia los datos inmediatamente. Puedes usar FileInputStream y FileOutputStream para copiar los datos leyéndolos y escribiéndolos manualmente.