Komprimiere deinen Datenstrom mit zlib

Komprimiere deinen Datenstrom mit zlib

Von Jan Suchotzki

Willkommen zum ersten InspirationMoment. Mit jedem InspirationsMoment zeige ich dir eine kleine Klasse, Methode oder Idee die dir helfen kann deinen C# Code zu verbessern. Dazu gibt es Links zu weiteren Details damit du selber recherchieren kannst wie du es für dich am besten umsetzt.

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.