Effektiv und einfach: Datenströme in Java komprimieren

Die Bibliothek zur Verarbeitung des ZIP-Datenformats hat wesentlich mehr zu bieten als die für GZIP. Es ist möglich, auf einfache Weise eine beliebige Anzahl von Dateien zu komprimieren, und es gibt sogar eine spezielle Klasse zum Lesen von ZIP-Dateien. Java verwendet das standardmäßige ZIP-Format, so dass jedes Komprimierungs- oder Archivierungs-Utility in der Lage ist, die komprimierten Daten zu lesen. Listing B hat dieselbe Struktur wie Listing A, aber die Anzahl der Dateien ist nicht beschränkt.

Listing B


Zu beachten ist die Verwendung der Klassen CheckedOutputStream und CRC32.So kann auf einfache Weise eine Prüfsumme der Daten berechnet und so deren Integrität kontrolliert werden. Die Prüfsumme wird verwendet, um zu kontrollieren, dass die Daten nicht verändert oder beschädigt wurden. CRC32 ist ein sehr populärer 32-Bit-Algorithmus zur Überprüfung der Datenintegrität.

Für jede Datei, die dem Archiv hinzugefügt wird, muss die Methode putNextEntry() mit dem entsprechenden ZipEntry-Objekt aufgerufen werden. ZipEntry enthält alles, was man zum Speichern von zusätzlichen Informationen in einer ZIP-Datei benötigt, also Dateiname, komprimierte und dekomprimierte Dateigröße, CRC-Prüfsumme, Kommentare, Komprimierungsverfahren und so weiter. Java gestattet keinen Passwortschutz für ZIP-Archive, obwohl diese Möglichkeit im ursprünglichen ZIP-Dateiformat vorgesehen ist.

Anwendung

Mit GZIP und ZIP können beliebige Datenströme in Java komprimiert und dekomprimiert werden, was bei einer Datei nicht notwendigerweise der Fall sein muss. Datenkomprimierung wird zum Beispiel von vielen Servlet-Anwendungen und Anwendungsservern (Servlet Container) häufig bei Servlet-Outputstreams eingesetzt, weil GZIP-komprimierte Daten auch ein Internet-Standard für die Übertragung von Daten mit dem HTTP-Protokoll sind.

Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Effektiv und einfach: Datenströme in Java komprimieren

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *