• 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);
            }
        }
    }
  • 相关阅读:
    上传下载图片到SQl
    掉所有的逗号
    jquery 是否有某属性的选择方法
    世界杯小组赛所有得分情况
    Jquery 操作表的某行内第几个控件
    jquery get()
    漏掉一个加号
    Datalist 的 itemdatabound 事件,行的内容的改变
    测试页脚
    tfs 获取最新后,老是编译不成功
  • 原文地址:https://www.cnblogs.com/sanyejun/p/10025998.html
Copyright © 2020-2023  润新知