using System; using System.Collections.Generic; using System.Text; using System.Runtime.Serialization.Formatters.Binary; using System.Runtime.Serialization; using System.IO; using System.IO.Compression; namespace EAS.Security { #if SOA_NO static class Compressor #else /// /// 数据压缩。 /// public static class Compressor #endif { /// /// 压缩数据。 /// /// 待压缩的数据。 /// 完成压缩的数据。 public static byte[] Compress(byte[] buffer) { MemoryStream ms = new MemoryStream(); using (DeflateStream zipStream = new DeflateStream(ms, CompressionMode.Compress, true)) { zipStream.Write(buffer, 0, buffer.Length); zipStream.Flush(); } //zipStream.Close(); return ms.ToArray(); } /// /// 压缩数据。 /// /// 待压缩的数据。 /// 完成压缩的数据。 public static byte[] Decompress(byte[] buffer) { using (MemoryStream input = new MemoryStream()) { input.Write(buffer, 0, buffer.Length); input.Position = 0; using (DeflateStream def = new DeflateStream(input, CompressionMode.Decompress)) { using (MemoryStream output = new MemoryStream()) { byte[] buff = new byte[64]; int read = -1; read = def.Read(buff, 0, buff.Length); while (read > 0) { output.Write(buff, 0, read); read = def.Read(buff, 0, buff.Length); } return output.ToArray(); } } } } } }