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.
Interessante Links
- Die Beschreibung der Klasse findest du auf MSDN. Dort gibt es auch ein Beispiel wie
DeflateStream
mitFileStream
verwendet wird. - Auf Github.com habe ich von Teodor92 eine Klasse gefunden die den
DeflateStream
in Extension-Methods kapselt. Dort kannst du sehen wieDeflateStream
mitMemoryStream
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.