常用代码段收集--压缩、解压

 

        /// <summary>
        /// 压缩
        /// </summary>
        /// <param name="vcompressString"></param>
        /// <returns></returns>
        public byte[] CompressString(string vcompressString)
        {
            byte[] result = null;
            if (vcompressString != null && vcompressString != "")
            {
                try
                {
                    byte[] vData = Encoding.UTF8.GetBytes(vcompressString);
                    MemoryStream input = new MemoryStream(vData);
                    MemoryStream output = new MemoryStream();
                    System.IO.Compression.GZipStream gzip = new System.IO.Compression.GZipStream(output,
                        System.IO.Compression.CompressionMode.Compress);
                    byte[] vBuf = new byte[4096];
                    int number;
                    while ((number = input.Read(vBuf, 0, 4096)) > 0)
                    {
                        gzip.Write(vBuf, 0, number);
                    }
                    gzip.Close();
                    input.Close();
                    result = output.ToArray();
                }
                catch (Exception E)
                {
                    MessageBox.Show("压缩字符串失败,原因: " + E.Message);
                }
            }
            return result;
        }

        /// <summary>
        /// 解缩
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public string Decompress(byte[] data)
        {
            string Result = "";
            if (data != null)
            {
                try
                {
                    MemoryStream input = new MemoryStream(data);
                    System.IO.Compression.GZipStream gzip = new System.IO.Compression.GZipStream(input, System.IO.Compression.CompressionMode.Decompress, true);
                    MemoryStream output = new MemoryStream();
                    byte[] buff = new byte[4096];
                    int read = -1;
                    read = gzip.Read(buff, 0, buff.Length);
                    while (read > 0)
                    {
                        output.Write(buff, 0, read);
                        read = gzip.Read(buff, 0, buff.Length);
                    }
                    gzip.Close();
                    input.Dispose();

                    Result = Encoding.UTF8.GetString(output.ToArray());
                }
                catch (Exception E)
                {
                    Result = "ERROR:无法获取数据,原因:" + E.Message;
                }
            }
            else
                Result = "ERROR:数据值为空!";
            return Result;
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值