Copiar Arquivos Usando a Classe Files do Java

JavaBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como copiar um arquivo para outro arquivo em Java. Existem várias maneiras de copiar um arquivo, como usar FileInputStream, FileOutputStream e a classe Files. Aqui, focaremos na classe Files, que é mais fácil de usar porque fornece um método copy() que copia instantaneamente o arquivo de origem para o arquivo de destino.

Importar as bibliotecas necessárias

No novo arquivo Java, importe as bibliotecas necessárias usando o seguinte 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;

Criar um objeto de arquivo

Crie um objeto de arquivo que aponte para o arquivo de origem que precisa ser copiado.

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

Criar um objeto de arquivo de destino

Crie um objeto de arquivo de destino que aponte para o arquivo onde você deseja copiar os dados do arquivo de origem.

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

Use a classe Files para copiar os dados

Use a classe Files para copiar os dados do arquivo de origem para o arquivo de destino. Você pode usar o método copy() da classe Files para fazer isso.

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

Use FileInputStream e FileOutputStream para copiar os dados

Neste método, usaremos FileInputStream e FileOutputStream para copiar os dados. Use o código a seguir para ler dados do arquivo de origem e escrever dados usando o 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 o programa

Abra um terminal e navegue até o diretório ~/project. Compile o programa usando o seguinte comando:

javac CopyFile.java

Executar o programa

Execute o programa usando o seguinte comando:

java CopyFile

Resumo

Neste laboratório, você aprendeu como copiar dados de um arquivo para outro arquivo usando a classe Files e FileInputStream e FileOutputStream. A classe Files é mais fácil de usar porque fornece um método copy() que copia dados instantaneamente. Você pode usar FileInputStream e FileOutputStream para copiar os dados lendo e escrevendo-os manualmente.