/// <summary>
/// 压缩流
/// </summary>
/// <param name="sourceStream"></param>
/// <returns></returns>
public Stream DecompressStream(Stream sourceStream)
{
MemoryStream responseStream = new MemoryStream();
using (System.IO.Compression.GZipStream compressedStream = new System.IO.Compression.GZipStream(responseStream, System.IO.Compression.CompressionMode.Compress, true))
{
byte[] buffer = new byte[sourceStream.Length];
int checkCounter = sourceStream.Read(buffer, 0, buffer.Length);
if (checkCounter != buffer.Length) throw new ApplicationException();
compressedStream.Write(buffer, 0, buffer.Length);
}
responseStream.Position = 0;
return responseStream;
}
//解压数据
static Stream DeCompress( Stream stream){
// 把 Stream 转换成 byte[]
byte[] bytess = new byte[stream.Length];
stream.Read(bytess, 0, bytes.Length);
{
using (GZipStream gs = new GZipStream(new MemoryStream(data), CompressionMode.Decompress, true))
{
//从压缩流中读出所有数据
byte[] bytes = new byte[4096];
int n;
while ((n = gs.Read(bytes, 0, bytes.Length)) != 0)
{
source.Write(bytes, 0, n);
}
}
return source;
}
}