• Je suis en train de développer un programme Java qui a besoin de compresser un fichier en utilisant un algorithme de compression. Comment puis-je faire cela?

    Réponse : 1 , Java, compression de fichier

  • Il existe plusieurs façons de compresser un fichier en Java, en utilisant différents algorithmes de compression. Vous pouvez utiliser des bibliothèques externes telles que Apache Commons IO, Java GZIP ou Java Zip, ou vous pouvez utiliser les classes de Java API pour compresser un fichier.

    Voici un exemple de code pour compresser un fichier en utilisant la bibliothèque Apache Commons IO:

    ```
    import org.apache.commons.io.IOUtils;
    import org.apache.commons.io.output.*;
    import java.io.*;
    import java.util.zip.*;

    public class FileCompressor {
    public static void main(String[] args) throws Exception {
    FileInputStream fis = new FileInputStream("fileToCompress.txt");
    FileOutputStream fos = new FileOutputStream("compressedFile.gz");
    GZIPOutputStream gzipOS = new GZIPOutputStream(fos);
    IOUtils.copy(fis, gzipOS);
    fis.close();
    gzipOS.close();
    }
    }
    ```

    Ce code utilise la bibliothèque Apache Commons IO pour compresser un fichier en utilisant l'algorithme de compression GZIP. IOUtils.copy() copie les données du flux d'entrée vers le flux de sortie, qui est le GZIPOutputStream, ce qui compresse les données dans le processus.

    Voici un autre exemple pour compresser un fichier en utilisant Java Zip:

    ```
    import java.io.*;
    import java.util.zip.*;

    public class FileCompressor {
    public static void main(String[] args) throws Exception {
    FileOutputStream fos = new FileOutputStream("compressedFile.zip");
    ZipOutputStream zipOS = new ZipOutputStream(fos);
    FileInputStream fis = new FileInputStream("fileToCompress.txt");
    ZipEntry zipEntry = new ZipEntry("fileToCompress.txt");
    zipOS.putNextEntry(zipEntry);
    byte[] bytes = new byte[1024];
    int length;
    while ((length = fis.read(bytes)) >= 0) {
    zipOS.write(bytes, 0, length);
    }
    zipOS.close();
    fis.close();
    fos.close();
    }
    }
    ```

    Ce code utilise la classe Java ZipOutputStream pour compresser un fichier en utilisant l'algorithme de compression ZIP. Il crée un ZipEntry pour chaque fichier à compresser et utilise zipOS.write() pour écrire les données compressées dans le fichier ZIP.

    En conclusion, la compression de fichiers en Java peut être accomplie en utilisant différentes bibliothèques et classes de Java API. En fonction de votre cas d'utilisation, vous pouvez choisir l'algorithme de compression approprié et utiliser le code ci-dessus pour compresser votre fichier.


    0 0 mandy30 a écrit ceci le 15-05-2023 12:54:47.

Envoyer une réponse