zoukankan      html  css  js  c++  java
  • 压缩和解压缩数据流

      //压缩压缩后的字节数组
            public byte[] Compress(byte[] data)
            {
                MemoryStream ms 
    = new MemoryStream();
                Stream zipStream 
    = new GZipStream(ms, CompressionMode.Compress, true);
                zipStream.Write(data, 
    0, data.Length);
                zipStream.Close();
                ms.Position 
    = 0;
                
    byte[] buffer = new byte[ms.Length];
                ms.Read(buffer, 
    0,int.Parse(ms.Length.ToString()));
                
    return buffer;
            }

    //解压缩
      public static byte[] Decompress(byte[] data)
            {
                
    try
                {
                    MemoryStream ms 
    = new MemoryStream(data);
                    Stream zipStream 
    = null;
                    zipStream 
    = new GZipStream(ms, CompressionMode.Decompress);
                    
    byte[] dc_data = null;
                    dc_data 
    = EtractBytesFormStream(zipStream, data.Length);
                    
    return dc_data;
                }
                
    catch
                {
                    
    return null;
                }
            }


            
    public static byte[] EtractBytesFormStream(Stream zipStream, int dataBlock)
            {
                
    try
                {
                    
    byte[] data = null;
                    
    int totalBytesRead = 0;
                    
    while (true)
                    {
                        Array.Resize(
    ref data, totalBytesRead + dataBlock + 1);
                        
    int bytesRead = zipStream.Read(data, totalBytesRead, dataBlock);
                        
    if (bytesRead == 0)
                        {
                            
    break;
                        }
                        totalBytesRead 
    += bytesRead;
                    }
                    Array.Resize(
    ref data, totalBytesRead);
                    
    return data;
                }
                
    catch
                {
                    
    return null;
                }
            }
  • 相关阅读:
    django--模型层(orm)-查询补充及cookie
    django-模型层(model)-多表相关操作(图书管理练习)
    Linux-正则表达式与三剑客
    网络配置命令优先级和元字符
    Linux-Nginx和NFS
    Linux-内存进程和软件安装
    乌龟棋
    倍增 Tarjan 求LCA
    切蛋糕
    HDU1505 City Game/玉蟾宫/全0子矩阵 悬线法
  • 原文地址:https://www.cnblogs.com/aaa6818162/p/1541062.html
Copyright © 2011-2022 走看看