日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

asp.net实现GZip压缩和GZip解压

發布時間:2025/3/14 asp.net 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 asp.net实现GZip压缩和GZip解压 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在開發一個網站doc.115sou.com,使用到了GZip壓縮技術,經過多次搜索找到asp.net中用GZip對數據壓縮和解壓縮非常方便,當我第一次拿到這個類的時候卻感覺很迷茫,無從下手。主要是因為GZipStream的構造函數中第一個需要傳入一個Stream,第二個是指定操作方式:壓縮還是解壓縮。

當時的疑問點主要有:

  • 我傳入的Stream是包含未壓縮數據的Stream嗎?
  • 我解壓時是從一個壓縮流中讀取數據后再用GZipStream解壓嗎?
  • 出現以上兩點疑問,完全是我將GZipStream的用法理解反了。

    其實GZipStream里面存的是已經壓縮過的數據流,傳入的Stream是作為基礎Stream傳入,如果要壓縮,那你就可以傳一個空的Stream進去,如果要解壓,就將包含壓縮數據的Stream傳進去。

    而GZipStream的讀和寫分別對應的是解壓和壓縮兩個操作,知道了這些,使用起來就簡單了。

    寫入的數據會被壓縮后寫入到傳入的Stream中,讀取的數據也是解壓后的數據,可以直接寫入到一個新的流中。

    byte[] cbytes = null; //壓縮using (MemoryStream cms = new MemoryStream()){using (System.IO.Compression.GZipStream gzip = new System.IO.Compression.GZipStream(cms,System.IO.Compression.CompressionMode.Compress)){//將數據寫入基礎流,同時會被壓縮byte[] bytes = Encoding.UTF8.GetBytes("解壓縮測試");gzip.Write(bytes, 0, bytes.Length);}cbytes = cms.ToArray();} //解壓using (MemoryStream dms = new MemoryStream()){using (MemoryStream cms = new MemoryStream(cbytes)){using (System.IO.Compression.GZipStream gzip = new System.IO.Compression.GZipStream(cms, System.IO.Compression.CompressionMode.Decompress)){byte[] bytes = new byte[1024];int len = 0;//讀取壓縮流,同時會被解壓while ((len = gzip.Read(bytes, 0, bytes.Length)) > 0){dms.Write(bytes, 0, len);}}}Console.WriteLine(Encoding.UTF8.GetString(dms.ToArray()));}

    ?

    轉載于:https://www.cnblogs.com/webapi/p/4364841.html

    總結

    以上是生活随笔為你收集整理的asp.net实现GZip压缩和GZip解压的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。