c#使用SharpZipLib對二進位制資料進行壓縮和解壓
阿新 • • 發佈:2019-02-01
需要引入名稱空間:
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)); }