01./// <summary>
02. /// 简单的压缩
03. /// </summary>
04. public static class CompressHelper
05. {
06. /// <summary>
07. /// 压缩字符串
08. /// </summary>
09. /// <param name="str"></param>
10. /// <returns></returns>
11. public static byte[] CompressString(string str)
12. {
13. return CompressBytes(Encoding.UTF8.GetBytes(str));
14. }
15.
16. /// <summary>
17. /// 压缩二进制
18. /// </summary>
19. /// <param name="str"></param>
20. /// <returns></returns>
21. public static byte[] CompressBytes(byte[] str)
22. {
23. var ms = new MemoryStream(str) {Position = 0};
24. var outms = new MemoryStream();
25. using (var deflateStream = new DeflateStream(outms, CompressionMode.Compress, true))
26. {
27. var buf = new byte[1024];
28. int len;
29. while ((len = ms.Read(buf, 0, buf.Length)) > 0)
30. deflateStream.Write(buf, 0, len);
31. }
32. return outms.ToArray();
33. }
34. /// <summary>
35. /// 解压字符串
36. /// </summary>
37. /// <param name="str"></param>
38. /// <returns></returns>
39. public static string DecompressString(byte[] str)
40. {
41. return Encoding.UTF8.GetString(DecompressBytes(str));
42. }
43. /// <summary>
44. /// 解压二进制
45. /// </summary>
46. /// <param name="str"></param>
47. /// <returns></returns>
48. public static byte[] DecompressBytes(byte[] str)
49. {
50. var ms = new MemoryStream(str) {Position = 0};
51. var outms = new MemoryStream();
52. using (var deflateStream = new DeflateStream(ms, CompressionMode.Decompress, true))
53. {
54. var buf = new byte[1024];
55. int len;
56. while ((len = deflateStream.Read(buf, 0, buf.Length)) > 0)
57. outms.Write(buf, 0, len);
58. }
59. return outms.ToArray();
60. }
61. }