#region 压缩与解压
/// <summary>
/// 压缩的字节数组
/// </summary>
/// <param name="data">要压缩的字节数组</param>
/// <returns>压缩后的字节数组</returns>
public byte[] Compress(byte[] data)
{
MemoryStream ms = new MemoryStream();
GZipStream zip = new GZipStream(ms, CompressionMode.Compress, true);
zip.Write(data, 0, data.Length);
zip.Close();
byte[] buffer = new byte[ms.Length];
ms.Position = 0;
ms.Read(buffer, 0, buffer.Length);
ms.Close();
return buffer;
}
/// <summary>
/// 解压的字节数组
/// </summary>
/// <param name="data">要解压的字节数组</param>
/// <returns>解压后的字节数组</returns>
public byte[] Decompress(byte[] data)
{
MemoryStream ms = new MemoryStream(data);
GZipStream zip = new GZipStream(ms, CompressionMode.Decompress);
MemoryStream msreader = new MemoryStream();
byte[] buffer = new byte[1024];
while (true)
{
int reader = zip.Read(buffer, 0, buffer.Length);
if (reader <= 0)
{
break;
}
msreader.Write(buffer, 0, reader);
}
zip.Close();
ms.Close();
msreader.Position = 0;
buffer = msreader.ToArray();
msreader.Close();
return buffer;
}
#endregion
转载于:https://www.cnblogs.com/liulf/archive/2011/03/25/1995036.html