zoukankan      html  css  js  c++  java
  • c#实现gzip压缩解压缩算法:byte[]字节数组,文件,字符串,数据流的压缩解压缩

    转载:https://blog.csdn.net/luanpeng825485697/article/details/78165788

    我测试了下压缩byte[],是可以的

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.IO;
    using System.IO.Compression;
    using UnityEngine;
    
    public class TestByteAttay : MonoBehaviour {
    
        // Use this for initialization
        void Start () {
            //测试字符串
            string inputStr = "zlex@zlex.org,snowolf@zlex.org,zlex.snowolf@zlex.org";
            print("原文:	" + inputStr);
    
            byte[] input = System.Text.Encoding.Default.GetBytes(inputStr);
            print("长度:	" + input.Length);
    
            byte[] data = gzipCompress(input);
            print("压缩后:	");
            print("长度:	" + data.Length);
        }
        
        // Update is called once per frame
        void Update () {
            
        }
    
        void YaSuo()
        {
            
        }
        
        //gzip字节数组压缩  
        public static byte[] gzipCompress(byte[] data)
        {
            try
            {
                MemoryStream ms = new MemoryStream();
                GZipStream zip = new GZipStream(ms, CompressionMode.Compress, true);
                zip.Write(data, 0, data.Length);
                zip.Close();
                byte[] buffer = new byte[ms.Length];
                ms.Position = 0;
                ms.Read(buffer, 0, buffer.Length);
                ms.Close();
                return buffer;
    
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
    
        
        //gzip字节数组解压缩  
        public static byte[] gzipDecompress(byte[] data)
        {
            try
            {
                MemoryStream ms = new MemoryStream(data);
                GZipStream zip = new GZipStream(ms, CompressionMode.Decompress, true);
                MemoryStream msreader = new MemoryStream();
                byte[] buffer = new byte[0x1000];
                while (true)
                {
                    int reader = zip.Read(buffer, 0, buffer.Length);
                    if (reader <= 0)
                    {
                        break;
                    }
                    msreader.Write(buffer, 0, reader);
                }
                zip.Close();
                ms.Close();
                msreader.Position = 0;
                buffer = msreader.ToArray();
                msreader.Close();
                return buffer;
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
    }
  • 相关阅读:
    vivado操作基本问题
    IIC通信控制的AD5259------在调试过程中遇到的奇葩问题
    FPGA基础架构总结
    PLL到底是个啥么东西呢?
    CSS-3 Transform 的使用
    CSS-3 box-shadow 的使用
    一些CSS3的乐趣
    CSS-3 文字阴影—text-shadow 的使用
    Jquery 较好的效果
    如何关闭输入法
  • 原文地址:https://www.cnblogs.com/sanyejun/p/10025998.html
Copyright © 2011-2022 走看看