zoukankan      html  css  js  c++  java
  • 压缩解压缩字符串

     1 /// <summary>
     2         /// 压缩字符串
     3         /// </summary>
     4         /// <param name="str"></param>
     5         /// <returns></returns>
     6         public static string Compress(string str)
     7         {
     8             if (string.IsNullOrEmpty(str))
     9             {
    10                 return "";
    11             }
    12             byte[] bytes = Encoding.UTF8.GetBytes(str);
    13             using (MemoryStream ms = new MemoryStream(1024))
    14             {
    15                 StringBuilder sb = new StringBuilder();
    16                 using (GZipStream compress = new GZipStream(ms, System.IO.Compression.CompressionMode.Compress))
    17                 {
    18                     compress.Write(bytes, 0, bytes.Length);
    19                 }
    20                 byte[] byteArray = ms.ToArray();
    21                 foreach (byte b in byteArray)
    22                 {
    23                     sb.Append((char)b);
    24                 }
    25                 return sb.ToString();
    26             }
    27         }
    28 
    29         /// <summary>
    30         /// 解压字符串
    31         /// </summary>
    32         /// <param name="str"></param>
    33         /// <returns></returns>
    34         public static string Decompress(string str)
    35         {
    36             if (string.IsNullOrEmpty(str))
    37             {
    38                 return "";
    39             }
    40             List<byte> bytes = new List<byte>(str.Length);
    41             foreach (char c in str)
    42             {
    43                 bytes.Add((byte)c);
    44             }
    45             using (MemoryStream ms = new MemoryStream(bytes.ToArray()))
    46             {
    47                 using (GZipStream decompress = new GZipStream(ms, System.IO.Compression.CompressionMode.Decompress))
    48                 {
    49                     using (StreamReader reader = new StreamReader(decompress))
    50                     {
    51                         return reader.ReadToEnd();
    52                     }
    53                 }
    54             }
    55         }
  • 相关阅读:
    HTML <input> 标签
    HTML5 <input> type 属性
    静态页面与动态页面
    string::size_type 页73 size_t 页90
    template method(模板方法)
    C++中创建对象的时候加括号和不加括号的区别(转)
    _declspec(dllexport)和.def(转)
    智能指针
    C++中的delete加深认识
    工厂方法(整理自李建忠<C++设计模式>视频)
  • 原文地址:https://www.cnblogs.com/jiao1855/p/3156718.html
Copyright © 2011-2022 走看看