Java >> Tutoriel Java >  >> Tag >> new

Fichier de copie Java | Annuaire | Nouveau nom (renommer) avec des exemples

Copier le fichier aide à modifier les données sans modifier les données d'origine. Idem qu'il fallait parfois une copie d'un fichier et la modification d'une application. Par exemple, une application ou un logiciel de retouche photo possède une copie de l'image originale sous forme de fichier temporaire. Dans ce didacticiel, vous apprendrez à écrire un programme de copie de fichiers Java et de nombreux exemples connexes.

La copie d'un fichier en Java relève de la gestion des fichiers. Il est important que vous appreniez à créer, écrire, supprimer et déplacer des fichiers par programmation en Java.

Méthodes pour copier un fichier en Java

Il existe plusieurs façons de copier un fichier en Java, voici quelques méthodes pour le faire :

  • Classes NIO en Java – java.nio.channels.FileChannel
  • Apache Commons IO FileUtils
  • Classe Files – copy() méthode
  • Fonctionnement avec InputStream et OutputStream

Commençons à voir des exemples de Java Copy File

Tous les exemples en Java copient le fichier avec un nouveau nom (Renommer). Vous pouvez utiliser le même nom pour celui-ci dans le chemin de fichier différent.

1. Utilisation de Channel - Classes NIO en Java

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;

public class CopyFileExample
{
    public static void main(String[] args)
    {

        File oldFile =new File("test.txt");
        File newFile =new File("cook.txt");

        try {
            copyFileUsingNIO(oldFile,newFile);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
    private static void copyFileUsingNIO(File sourceFile, File destinationFile) throws IOException {
        FileInputStream inputStream = new FileInputStream(sourceFile);
        FileOutputStream outputStream = new FileOutputStream(destinationFile);
        FileChannel inChannel = inputStream.getChannel();
        FileChannel outChannel = outputStream.getChannel();
        try {
            inChannel.transferTo(0, inChannel.size(), outChannel);
        } finally {
            inChannel.close();
            outChannel.close();
            inputStream.close();
            outputStream.close();
        }
    }
}

Sortie  :Cette sortie sera commune à tous les exemples de copie de fichiers en java

2. Apache Commons IO FileUtils

Apache Commons IO a une méthode FileUtils.copyFile(File sourceFile, File destination file) pour copier facilement un fichier. Si vous utilisez un IO Apache Commons dans le projet, vous pouvez facilement utiliser ses méthodes et ses classes.

Un lien vers la bibliothèque - https://commons.apache.org/proper/commons-io/download_io.cgi
*Apache Commons IO 2.6 (nécessite JDK 1.7+)

import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;

public class CopyFileExample
{
    public static void main(String[] args)
    {

        File oldFile =new File("test.txt");
        File newFile =new File("cook.txt");

        try {
            copyFileUsingApacheCommonsIO(oldFile,newFile);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
    private static void copyFileUsingApacheCommonsIO(File source, File dest) throws IOException {
        FileUtils.copyFile(source, dest);
    }
}

3. Classe de fichiers – copier() méthode

Si vous utilisez une classe Java SE 7 Files, la méthode copy() fait simplement votre travail sans beaucoup de ligne de code.

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;

public class CopyFileExample
{
    public static void main(String[] args)
    {

        File oldFile =new File("test.txt");
        File newFile =new File("cook.txt");

        try {
            copyFileUsingJava7Files(oldFile,newFile);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
    private static void copyFileUsingJava7Files(File source, File dest) throws IOException {
        Files.copy(source.toPath(), dest.toPath());
    }
}

4. Opération utilisant InputStream et OutputStream

C'est une façon basique de copier un fichier. Il est plus lent que les autres méthodes en raison du blocage des E/S et entièrement orienté flux.

import java.io.*;


public class CopyFileExample {
    public static void main(String[] args) {

        File oldFile = new File("test.txt");
        File newFile = new File("cook.txt");

        try {
            copyFileUsingIO(oldFile, newFile);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    private static void copyFileUsingIO(File sourceFile, File destinationFile) throws IOException {
        InputStream inputStreamData = null;
        OutputStream outputStreamData = null;

        try {
            inputStreamData = new BufferedInputStream(new FileInputStream(sourceFile));
            outputStreamData = new BufferedOutputStream(new FileOutputStream(destinationFile));
            byte[] buffer = new byte[1024];
            int length;
            while ((length = inputStreamData.read(buffer)) > 0) {
                outputStreamData.write(buffer, 0, length);
            }

        } finally {
            inputStreamData.close();
            outputStreamData.close();
        }
    }
}

Comment Java copie le répertoire ?

La copie d'un dossier ou d'un répertoire de copie Java est identique. Voir l'exemple ci-dessous, comment copier un répertoire d'un endroit à un autre. Remarque :il ne copiera le répertoire que sur les fichiers (à l'intérieur des fichiers du dossier).

Utilisation de la classe Files - copy() méthode, vous pouvez utiliser apache Apache Commons API pour copier le répertoire en Java.

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class CopyFileExample {
    public static void main(String[] args) {

        Path sourceDirectory = Paths.get("dest");
        Path targetDirectory = Paths.get("dest1");

        //copy source to target using Files Class
        try {
            Files.copy(sourceDirectory, targetDirectory);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

Sortie :vous pouvez voir la sortie de l'exemple, uniquement la copie du dossier et non le fichier.

Question : Comment copier plusieurs fichiers d'un répertoire à un autre en Java ?

Réponse : Vous pouvez le faire en utilisant l'une des méthodes ci-dessus. Tout d'abord, comptez et obtenez le chemin du fichier avec le nom des fichiers à l'aide de la boucle for. Ensuite, appliquez l'une des méthodes à l'intérieur d'une boucle à faire jusqu'à ce que tous les fichiers soient copiés.

Vous devez suivre ce tutoriel et cet exemple – Java Move File

Remarque : Cet exemple (Project) est développé dans IntelliJ IDEA 2018.2.6 (Community Edition)
JRE :11.0.1
JVM : OpenJDK VM serveur 64 bits par JetBrains s.r.o
macOS 10.14.1
Java 11
Tous Fichier de copie Java est dans Java 11, il peut donc changer selon Java 9 ou 10 ou les versions mises à niveau.|


Balise Java