J'ai regardé la bibliothèque Zip par défaut fournie avec le JDK et les bibliothèques de compression Apache et je ne suis pas satisfait d'eux pour 3 raisons:
Ils sont gonflés et ont une mauvaise conception de l'API. Je dois écrire 50 lignes de sortie de tableau d'octets de plaque de chaudière, entrée zip, fichiers de sortie et fermer les flux pertinents et intercepter les exceptions et déplacer les tampons d'octets par moi-même ? Pourquoi ne puis-je pas avoir une API simple qui ressemble à ceci
Zipper.unzip(InputStream zipFile, File targetDirectory, String password = null)
etZipper.zip(File targetDirectory, String password = null)
qui fonctionne?Il semble que la décompression de la décompression détruit les métadonnées du fichier et que la gestion des mots de passe est rompue.
De plus, toutes les bibliothèques que j'ai essayées étaient 2-3x plus lentes que les outils zip de ligne de commande que j'obtiens avec UNIX?
Pour moi (2) et (3) sont des points mineurs mais je veux vraiment une bonne bibliothèque testée avec une interface à une ligne.