数据压缩与解压缩

数据压缩与解压缩需要用到一个已经编译好的dll,名字叫 ICSharpCode.SharpZipLib,可以直接到我上传的资源中下载,1积分,地址:DLL下载,源码来自商业游戏源码。

     /**
     * 压缩的方式 
     * @param str
     * @return
     * @throws IOException
     */
    public static string compressByGZIP(string str)
    {
        if (string.IsNullOrEmpty(str)) 
        {
            return str;
        }
        MemoryStream ms = new MemoryStream();
        GZipOutputStream gzip = new GZipOutputStream(ms);
        byte[] binary = Encoding.UTF8.GetBytes(str);
        gzip.Write(binary, 0, binary.Length);
        gzip.Finish();
        gzip.Flush();
        gzip.Close();
        byte[] press = ms.ToArray();
        return Encoding.GetEncoding("ISO-8859-1").GetString(press);
    }

对应的解压的代码:

     /**
     * 解压缩
     * @param str
     * @return
     * @throws IOException
     */
    public static string uncompressByGZIP(string str)
    {
        if (string.IsNullOrEmpty(str)) 
        {
            return null;
        }
        byte[] press=Encoding.GetEncoding("ISO-8859-1").GetBytes(str);
        GZipInputStream gzi = new GZipInputStream(new MemoryStream(press));
        MemoryStream re = new MemoryStream();
        int count=0;
        byte[] data=new byte[256];
        while ((count = gzi.Read(data, 0, data.Length)) != 0)
        {
            re.Write(data,0,count);
        }
        byte[] depress = re.ToArray();
        return Encoding.UTF8.GetString(depress);
    }

将数据压缩后,使用前请先解压,使用此方法可以进行包的优化,也有利用数据安全。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瓜皮肖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值