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 }