为什么CopyTo会导致异常?它下面的代码很完美,也是我认为copyto会做的。
using (var mem = new MemoryStream())
{
using (var memin = new MemoryStream(v.body))
using (var comp = new BZip2InputStream(memin))
{
//comp.CopyTo(mem); //Non-negative number required (System.ArgumentOutOfRangeException)
var buf = new Byte[1024 * 4];
int len=0;
while ((len = comp.Read(buf, 0, buf.Length)) > 0)
{
mem.Write(buf, 0, len);
}
}
答案 0 :(得分:1)
它是BZip2InputStream.Read(byte[] buffer, int offset, int count)
中的一个错误。它返回-1而不是0.我报告了the bug
此外,CopyTo会检查通过!= 0而不是> 0作为问题中的代码。