【发布时间】:2017-01-06 06:44:20
【问题描述】:
我使用 ionic.zip gzipstream 压缩和解压缩 byte[], 它可以很好地压缩,但是当它从 byte[] 压缩时解压缩它告诉
错误状态(无效的存储块长度)
下面是我的代码
Trace.WriteLine(s.Length);
var b = Encoding.UTF8.GetBytes(s);
Trace.WriteLine(b.Length);
byte[] b2;
var sw = new Stopwatch();
sw.Start();
using (var m = new MemoryStream())
{
var stream = new GZipStream(m, CompressionMode.Compress,true);
stream.Write(b,0,b.Length);
stream.Flush();
b2 = m.GetBuffer();
stream.Close();
sw.Stop();
Trace.WriteLine(sw.ElapsedMilliseconds);
Trace.WriteLine(b2.Length);
}
using (var m2 = new MemoryStream())
{
m2.Write(b2,0,b2.Length);
m2.Position = 0;
var stream = new GZipStream(m2,CompressionMode.Decompress,true);
var m3 = new MemoryStream();
var buffer = new byte[1024];
var n = 1;
while (n != 0)
{
n = stream.Read(buffer, 0, buffer.Length);
if (n > 0)
{
m3.Write(buffer,0,n);
}
}
var b3 = m3.GetBuffer();
Trace.WriteLine(b3);
}
解压码就是文档说的。here
我没有找到其他文档, 解压的时候怎么办?
【问题讨论】:
标签: gzipstream