1. 程式人生 > >c#使用SharpZipLib對二進位制資料進行壓縮和解壓

c#使用SharpZipLib對二進位制資料進行壓縮和解壓

需要引入名稱空間:

using ICSharpCode.SharpZipLib.GZip;
using System.IO;
壓縮:
    public static byte[] CompressGZip(byte[] rawData)
    {
        MemoryStream ms = new MemoryStream();
        GZipOutputStream compressedzipStream = new GZipOutputStream(ms);
        compressedzipStream.Write(rawData, 0, rawData.Length);
        compressedzipStream.Close();
        return ms.ToArray();
    }
解壓:
    public static byte[] UnGZip(byte[] byteArray) 
    { 
        GZipInputStream gzi = new GZipInputStream(new MemoryStream(byteArray));
        
        MemoryStream re = new MemoryStream(50000);
        int count;
        byte[] data = new byte[50000];
        while ((count = gzi.Read(data, 0, data.Length)) != 0)
        {
            re.Write(data, 0, count);
        }
        byte[] overarr = re.ToArray();
        return overarr; 
    } 
測試:
public static void GZipTest()
    {
        string testdata = "aaaa11233GZip壓縮和解壓";

        byte[] gzipdata = Tools.CompressGZip(Encoding.UTF8.GetBytes(testdata));
        byte[] undata = Tools.UnGZip(gzipdata);

        Debug.Log("[GZipTest]  : data" + Encoding.UTF8.GetString(undata));
    }
結果: