zoukankan      html  css  js  c++  java
  • c#使用SharpZipLib对二进制数据进行压缩和解压

     

    首先需要下载SharpZipLib,下载地址:http://icsharpcode.github.io/SharpZipLib/

    需要引入命名空间:

    [csharp] view plain copy
     
    1. using ICSharpCode.SharpZipLib.GZip;  
    2. using System.IO;  
    压缩:
    [csharp] view plain copy
     
    1. public static byte[] CompressGZip(byte[] rawData)  
    2. {  
    3.     MemoryStream ms = new MemoryStream();  
    4.     GZipOutputStream compressedzipStream = new GZipOutputStream(ms);  
    5.     compressedzipStream.Write(rawData, 0, rawData.Length);  
    6.     compressedzipStream.Close();  
    7.     return ms.ToArray();  
    8. }  
    解压:
    [csharp] view plain copy
     
    1. public static byte[] UnGZip(byte[] byteArray)   
    2. {   
    3.     GZipInputStream gzi = new GZipInputStream(new MemoryStream(byteArray));  
    4.       
    5.     MemoryStream re = new MemoryStream(50000);  
    6.     int count;  
    7.     byte[] data = new byte[50000];  
    8.     while ((count = gzi.Read(data, 0, data.Length)) != 0)  
    9.     {  
    10.         re.Write(data, 0, count);  
    11.     }  
    12.     byte[] overarr = re.ToArray();  
    13.     return overarr;   
    14. }   
    测试:
    [csharp] view plain copy
     
    1. public static void GZipTest()  
    2.     {  
    3.         string testdata = "aaaa11233GZip压缩和解压";  
    4.   
    5.         byte[] gzipdata = Tools.CompressGZip(Encoding.UTF8.GetBytes(testdata));  
    6.         byte[] undata = Tools.UnGZip(gzipdata);  
    7.   
    8.         Debug.Log("[GZipTest]  : data" + Encoding.UTF8.GetString(undata));  
    9.     }  
    结果:

  • 相关阅读:
    springmvc中request的线程安全问题
    日志帮助类
    模态框的实现
    getopts的使用方法
    自动生成头文件的脚本
    shell脚本中出现图形化界面
    Linux Centos关机命令
    Linux下IP的存储位置
    tar只解压tar包中某个文件
    Swift 笔记1
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/9056464.html
Copyright © 2011-2022 走看看