压缩解压缩字符串

 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         }
原文地址:https://www.cnblogs.com/jiao1855/p/3156718.html