Copier des fichiers à l'aide de la classe Files en Java

JavaBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous allez apprendre à copier un fichier dans un autre fichier en Java. Il existe plusieurs façons de copier un fichier, telles que l'utilisation de FileInputStream, FileOutputStream et la classe Files. Ici, nous allons nous concentrer sur la classe Files, qui est plus facile à utiliser car elle fournit une méthode copy() qui copie instantanément le fichier source dans le fichier de destination.

Importer les bibliothèques requises

Dans le nouveau fichier Java, importez les bibliothèques requises à l'aide du code suivant :

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;

Créer un objet de fichier

Créez un objet de fichier qui pointe vers le fichier source qui doit être copié.

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

Créer un objet de fichier de destination

Créez un objet de fichier de destination qui pointe vers le fichier où vous souhaitez copier les données à partir du fichier source.

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

Utiliser la classe Files pour copier les données

Utilisez la classe Files pour copier les données du fichier source vers le fichier de destination. Vous pouvez utiliser la méthode copy() de la classe Files pour ce faire.

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

Utiliser FileInputStream et FileOutputStream pour copier les données

Dans cette méthode, nous allons utiliser FileInputStream et FileOutputStream pour copier les données. Utilisez le code suivant pour lire les données à partir du fichier source et écrire les données à l'aide de la méthode 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();

Compiler le programme

Ouvrez un terminal et accédez au répertoire ~/projet. Compilez le programme à l'aide de la commande suivante :

javac CopyFile.java

Exécuter le programme

Exécutez le programme à l'aide de la commande suivante :

java CopyFile

Résumé

Dans ce laboratoire, vous avez appris à copier des données d'un fichier à un autre en utilisant la classe Files et FileInputStream et FileOutputStream. La classe Files est plus facile à utiliser car elle fournit une méthode copy() qui copie les données instantanément. Vous pouvez utiliser FileInputStream et FileOutputStream pour copier les données en les lisant et en les écrivant manuellement.