Komprimiere deinen Datenstrom mit zlib

Komprimiere deinen Datenstrom mit zlib

Willkommen zum ersten InspirationMoment. Wenn du davon noch nichts gehört hast, bekommst du im Hintergrundartikel “Mehr Output! Weniger Input!” mehr Informationen dazu.

DeflateStream

Es geht heute um die Klasse DeflateStream. Du findest sie im Namensraum System.IO.Compression. Mit ihr kannst du einen Datenstrom, welcher von System.IO.Stream abgeleitet wurde, komprimieren. Seit .NET 4.5 wird dazu die zlib Bibliothek verwendet. Davor wurde eine Kombination des LZ77 Algorithmus und Huffman-Kodierung verwendet.

Ab .NET 4.0 kann diese Klasse auch mit Dateien umgehen, die größer als 4GB sind.

  • Die Beschreibung der Klasse findest du auf MSDN. Dort gibt es auch ein Beispiel wie DeflateStream mit FileStream verwendet wird.
  • Auf Github.com habe ich von Teodor92 eine Klasse gefunden die den DeflateStream in Extension-Methods kapselt. Dort kannst du sehen wie DeflateStream mit MemoryStream zusammen arbeitet.
  • Natürlich hat auch Mono die Klasse DeflateStream. Dazu gibt es auf GitHub.com sogar einige Unittests.

Viel Spaß mit dem Komprimieren deiner Daten

Jan

PS: Gefällt dir das Konzept des InspirationsMoment? Über ein kurzes Feedback würde ich mich freuen.

comments powered by Disqus