• GZip对字符串压缩和解压


     1         /// <summary>
     2         /// 压缩
     3         /// </summary>
     4         /// <param name="value">需要压缩字符串</param>
     5         /// <returns>结果</returns>
     6         public static string Compression(string value)
     7         {
     8             byte[] data = Encoding.UTF8.GetBytes(value);
     9             using (MemoryStream ms = new MemoryStream())
    10             {
    11                 using (GZipStream compressedzipStream = new GZipStream(ms, CompressionMode.Compress, true))
    12                 {
    13                     compressedzipStream.Write(data, 0, data.Length);
    14                 }
    15                 return Convert.ToBase64String(ms.ToArray());
    16             }
    17         }
    18 
    19         /// <summary>
    20         /// 解压
    21         /// </summary>
    22         /// <param name="value">需要解压字符串</param>
    23         /// <returns>结果</returns>
    24         public static string Decompress(string value)
    25         {
    26             byte[] data = Convert.FromBase64String(value);
    27             using (MemoryStream ms = new MemoryStream(data))
    28             {
    29                 using (GZipStream compressedzipStream = new GZipStream(ms, CompressionMode.Decompress))
    30                 {
    31                     using (MemoryStream outBuffer = new MemoryStream())
    32                     {
    33                         byte[] block = new byte[1024];
    34                         int bytesRead = compressedzipStream.Read(block, 0, block.Length);
    35                         outBuffer.Write(block, 0, bytesRead);
    36                         return Encoding.UTF8.GetString(outBuffer.ToArray());
    37                     }
    38                 }
    39             }
    40         }
            /// <summary>
            /// 解压(数据量过大的时候解压)
            /// </summary>
            /// <param name="value">需要解压字符串</param>
            /// <returns>结果</returns>
            public static string Decompress(string value)
            {
                byte[] data = Convert.FromBase64String(value);
                using (MemoryStream ms = new MemoryStream(data))
                {
                    using (GZipStream compressedzipStream = new GZipStream(ms, CompressionMode.Decompress))
                    {
                        using (MemoryStream outBuffer = new MemoryStream())
                        {
                            byte[] block = new byte[1024];
                            int bytesRead;
                            do
                            {
                                bytesRead = compressedzipStream.Read(block, 0, block.Length);
                                outBuffer.Write(block, 0, bytesRead);
                            } while (bytesRead > 0);
                            return Encoding.UTF8.GetString(outBuffer.ToArray());
                        }
                    }
                }
            }
    1         /// <summary>
    2         /// 测试
    3         /// </summary>
    4         public static void TT()
    5         {
    6             var json = "{"Key":"Value"}";
    7             var ys = Compression(json);
    8             var jy = Decompress(ys);
    9         }
  • 相关阅读:
    Ubuntu 18.04 新系统 允许root远程登录设置方法
    《软件需求》读书笔记03
    第十一周总结
    python 遍历迭代器iteration与list的区别
    第九周总结
    大学生运动情况调研计划
    系统需求分析08
    系统需求分析07
    系统需求分析06
    系统需求分析05
  • 原文地址:https://www.cnblogs.com/liuxiaoji/p/5508705.html
Copyright © 2020-2023  润新知