Ich habe mir die Standard-Zip-Bibliothek angesehen, die mit dem JDK und den Apache-Komprimierungsbibliotheken geliefert wird, und bin aus drei Gründen mit ihnen unzufrieden:
Sie sind aufgebläht und haben ein schlechtes API-Design. Ich muss 50 Zeilen Boiler-Plate-Byte-Array-Ausgabe, Zip-Eingabe, Datei-Out-Streams und Schließen relevanter Streams schreiben und Ausnahmen abfangen und Byte-Puffer selbst verschieben . Warum kann ich keine einfache API haben, die so aussieht
Zipper.unzip(InputStream zipFile, File targetDirectory, String password = null)
undZipper.zip(File targetDirectory, String password = null)
einfach funktioniert?Es scheint, dass das Entpacken beim Entpacken die Metadaten der Datei zerstört und die Kennwortbehandlung fehlerhaft ist.
Außerdem waren alle Bibliotheken, die ich ausprobiert habe, 2-3x langsam im Vergleich zu den Befehlszeilen-Zip-Tools, die ich mit UNIX erhalte.
Für mich sind (2) und (3) kleine Punkte, aber ich möchte wirklich eine gut getestete Bibliothek mit einer einzeiligen Schnittstelle.