.net GZipStream 壓縮與解壓
簡介:
GzipStream表示GZip 數據格式,它使用無損壓縮和解壓縮文件的行業標準算法。 這種格式包括一個檢測數據損壞的循環冗余校驗值。 GZip 數據格式使用的算法與 DeflateStream 類的算法相同,但它可以擴展以使用其他壓縮格式。 這種格式可以通過不涉及專利使用權的方式輕松實現。
實際使用中因為涉及到網絡傳輸大量數據,直接傳送簡直不能忍,用GzipStream壓縮了一下后再傳輸流量立即下降了80%,,主要是因為ASCII文本格式有比較高的壓縮率所以會比較高。
GzipStream 位于 System.IO.Compression 中
壓縮代碼
public byte[] Compress(byte[] io) { System.IO.MemoryStream basestream = new System.IO.MemoryStream(); using (System.IO.Compression.GZipStream compressstream = new GZipStream(basestream, CompressionMode.Compress, true)) { compressstream.Write(io, 0, io.Length); compressstream.Flush(); compressstream.Close(); } basestream.Position = 0; return basestream.GetBuffer(); }
解壓代碼
public System.IO.StringReader DeCompress(byte[] str) { System.IO.MemoryStream stream = new System.IO.MemoryStream(); stream.Write(str,0,str.Length); stream.Position = 0; GZipStream zip = new GZipStream(stream, CompressionMode.Decompress); System.IO.StreamReader rd = new System.IO.StreamReader(zip); return new System.IO.StringReader(rd.ReadToEnd()); }
我實際用的過程中 壓縮前為3M 壓縮后 50K ,效果非常明顯。
來自:http://my.oschina.net/000quanwei/blog/500729
本文由用戶 ygp8 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!