DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Java Zone»Comment copier des fichiers d’un répertoire à un autre en Java : exemple
    Java Zone

    Comment copier des fichiers d’un répertoire à un autre en Java : exemple

    octobre 23, 2021
    Comment copier des fichiers d'un répertoire à un autre en Java : exemple
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    Bonjour les gens. Je programme en Java depuis longtemps et vous ne le croirez pas, mais il y avait pas de méthode de copie de fichier dans l’API Java jusqu’à Java 7. Nos options étaient soit de : l’écrire nous-mêmes en utilisant un FileInputStream, un FileOutputStream et un tampon pour copier des octets de l’un à l’autre ; ou, mieux encore, utilisez le FileChannel.transferTo() ou Apache Commons FileUtils, qui était une bouée de sauvetage à l’époque et l’est toujours aujourd’hui.

    JDK a évolué maintenant et vous disposez d’une API décente pour copier des fichiers d’un répertoire à un autre. Dans cet article, je vais vous montrer à la fois le code pré-Java pour copier des fichiers d’un répertoire à un autre ainsi que le code Java 7, ce qui rend cette tâche beaucoup plus facile.

    1. Copie de fichiers d’un répertoire à un autre avant Java 7

    Dépendance : Apache Commons IO

    1.1 FileUtils.copyFile (Source du fichier, Destination du fichier)

    Cette méthode copie un fichier vers un nouvel emplacement en préservant l’horodatage du fichier. Il copie également le contenu du fichier source spécifié dans le fichier de destination spécifié. Le répertoire contenant le fichier de destination est créé s’il n’existe pas. Si le fichier de destination existe, cette méthode l’écrasera.

    import java.io.File;
    
    import java.io.IOException;
    
    
    
    import org.apache.commons.io.FileUtils;
    
    
    
    /**
    
    * Java program to copy a file from one directory to another e.g. from src to dest
    
    *
    
    * @author Javin
    
    */
    
    public class FileCopyDemo {
    
    
    
    public static void main(String args[]) {
    
    
    
    // Using Apache Commons FileUtils class
    
    File srcFile = new File("bin/HelloWorld.class");
    
    File destFile = new File("target/HelloWorld.class");
    
    try {
    
    FileUtils.copyFile(srcFile, destFile);
    
    System.out.println("File successfully copied in Java");
    
    } catch (IOException e) {
    
    e.printStackTrace();
    
    }
    
    
    
    }
    
    
    
    }
    
    Output:
    
    System.out.println("File successfully copied in Java");

    1.2 Copie un fichier dans un répertoire en conservant l’horodatage

    Cette méthode copie le contenu du fichier source spécifié dans un fichier du même nom dans le répertoire de destination spécifié. Le répertoire de destination est créé s’il n’existe pas. Si le fichier de destination existe, cette méthode l’écrasera.

    import java.io.File;
    
    import java.io.IOException;
    
    
    
    import org.apache.commons.io.FileUtils;
    
    
    
    /**
    
    * Java program to copy a file from one directory to another like from src to dest
    
    *
    
    * @author Javin Paul
    
    */
    
    public class Testing {
    
    
    
    public static void main(String args[]) {
    
    
    
    // Using Apache Commons FileUtils class
    
    File srcFile = new File("bin/HelloWorld.class");
    
    File destDir = new File("target");
    
    try {
    
    FileUtils.copyFileToDirectory(srcFile, destDir);
    
    
    
    System.out.println("File successfully copied to destination directory in Java");
    
    } catch (IOException e) {
    
    e.printStackTrace();
    
    }
    
    
    
    }
    
    
    
    }
    
    
    
    Output
    
    File successfully copied to destination directory in Java

    Comment copier un fichier d'un répertoire à un autre en Java

    2. Copie de fichiers d’un répertoire à un autre à l’aide de l’API Java 7 NIO 2

    En Java 7, il existe une méthode standard pour copier des fichiers : Files.copy.

    Il s’intègre aux E/S natives du système d’exploitation pour des performances élevées.

    import java.io.IOException;
    
    import java.nio.file.Files;
    
    import java.nio.file.Path;
    
    
    
    import static java.nio.file.StandardCopyOption.*;
    
    import static java.nio.file.LinkOption.*;
    
    
    
    /**
    
    * Java program to copy file using Java 7 Files.copy() method
    
    *
    
    * @author Javin Paul
    
    */
    
    public class FileCopyDemo {
    
    
    
    public static void main(String args[]) {
    
    
    
    try {
    
    Path bytes = Files.copy(
    
    new Java.io.File("bin/HelloWorld.class").toPath(),
    
    new java.io.File("target/HelloWorld.class").toPath(),
    
    REPLACE_EXISTING,
    
    COPY_ATTRIBUTES,
    
    NOFOLLOW_LINKS);
    
    System.out.println("File successfully copied using Java 7 way");
    
    
    
    } catch (IOException e) {
    
    // TODO Auto-generated catch block
    
    e.printStackTrace();
    
    }
    
    
    
    }
    
    
    
    }

    Vous pouvez également copier des fichiers en Java en écrivant du code à l’aide de FileInputStream et FileOuputStream, mais ce n’est tout simplement pas nécessaire, étant donné que Java 7 est installé.

    Alternativement, la classe Apache Commons IO FileUtils est également pratique. Pour la copie et le transfert de fichiers à grande vitesse, vous pouvez également profiter de la classe java.nio et FileChannel, mais sachez qu’il existe un bogue dans Windows qui vous empêche de transférer plus de 64 Go de données de canal.

    Merci d’avoir lu cet article. Si vous l’aimez, partagez-le avec vos amis et collègues. Si vous avez des questions ou des commentaires, veuillez laisser une note.

    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.