Effektiv und einfach: Datenströme in Java komprimieren

Die klassische I/O-Library von Java enthält Klassen, welche die I/O-Bearbeitung von Datenströmen mit komprimierten Daten unterstützen. Auf einfache Weise ist es möglich, beliebige Text- oder Binärdaten zu komprimieren und dekomprimieren, und zwar aus jedem und in jeden I/O-Stream, entweder mit einer Datei oder einem beliebigen anderen Datenstrom (zum Beispiel einem Servlet-Outputstream).

Im Folgenden soll kurz gezeigt werden, wie einfach Datenströme in Java mithilfe der Datenformate GZIP und ZIP zu komprimieren sind.

Klassen zur Datenkomprimierung

Klassen zur Datenkomprimierung nutzen auf der untersten Ebene allgemeine I/O-Streams. Wichtig ist, dass diese Klassen nicht Teil der Symbolströme-Hierarchie sind wie Reader und Writer, sondern auf den Byteströmen InputStream und OutputStream basieren. Das liegt daran, dass die Komprimierungsbibliothek mit Bytes arbeitet und nicht mit Symbolen. Es ist allerdings jederzeit möglich, die Streams zu mischen, indem ein Bytestrom mithilfe von InputStreamReader oder OutputStreamWriter in einen Symbolstrom konvertiert wird.

Hier einige der Klassen, die für die Arbeit mit Datenströmen nützlich sein können:

  • DeflaterOutputStream: Dies ist die Basisklasse für alle Klassen zur Datenkomprimierung.
  • CheckedInputStream: Für jeden Eingabestrom InputStream liefert diese Klasse eine Prüfsumme mithilfe der Methode getCheckSum() zurück.
  • CheckedOutputStream: Für jeden Ausgabestrom OutputStream liefert diese Klasse eine Prüfsumme mithilfe der Methode getCheckSum() zurück.
  • ZipOutputStream: Dies ist eine Unterklasse von DeflaterOutputStream. Hauptzweck dieser Unterklasse ist die Komprimierung von Daten im ZIP-Format.
  • GZIPOutputStream: Die Unterklasse von DeflaterOutputStream. Sie komprimiert Daten im GZIP-Format.
  • InflaterInputStream: Basisklasse zum Dekomprimieren von Daten.
  • ZipInputStream: Diese Unterklasse von InflaterInputStream kann Daten im ZIP-Format dekomprimieren.
  • GZIPInputStream: eine Unterklasse von InflaterInputStream zum Dekomprimieren von Daten im GZIP-Format.

Es gibt eine Vielzahl von Algorithmen zur Datenkomprimierung, aber die Formate GZIP und ZIP sind die am häufigsten verwendeten. Daher sind sie auch in einem Standardpaket von Java implementiert.

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Google: Passkeys schützen mehr als 400 Millionen Google-Konten

Die Passwort-Alternative Passkeys überholt Einmalpasswörter bei der Zwei-Faktor-Authentifizierung. Auch Microsoft setzt sich aktiv für die…

2 Stunden ago

Infostealer: 53 Prozent der Angriffe treffen Unternehmensrechner

Der Anteil steigt seit 2020 um 34 Prozentpunkte. Allein 2023 erfasst Kaspersky rund 10 Millionen…

3 Stunden ago

Salesforce: Mit Einstein GPT zurück auf die Überholspur?

Salesforce forciert den Ausbau seiner Industry Clouds. Mit ihrem Prozesswissen könnten deutsche IT-Dienstleister davon profitieren.

1 Tag ago

Neue Backdoor: Bedrohung durch Malvertising-Kampagne mit MadMxShell

Bisher unbekannter Bedrohungsakteur versucht über gefälschte IP Scanner Software-Domänen Zugriff auf IT-Umgebungen zu erlangen.

2 Tagen ago

BSI-Studie: Wie KI die Bedrohungslandschaft verändert

Der Bericht zeigt bereits nutzbare Angriffsanwendungen und bewertet die Risiken, die davon ausgehen.

3 Tagen ago

KI-Wandel: Welche Berufe sich am stärksten verändern

Deutsche sehen Finanzwesen und IT im Zentrum der KI-Transformation. Justiz und Militär hingegen werden deutlich…

3 Tagen ago