【发布时间】:2012-10-04 23:47:18
【问题描述】:
为什么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);
}
}
【问题讨论】:
-
因为
v.body的内容有问题,或者BZip2InputStream期望看到的和实际看到的不匹配?从SharpZipLib抛出异常。阅读代码并找出答案。 -
@Jon 不正确,堆栈跟踪显示它发生在 System.IO.MemoryStream.Write 在 InternalCopyTo 和 CopyTo 之后。 BZip2InputStream 不在堆栈跟踪中
-
太棒了。所以通过猜测进行调试是行不通的。您介意发布堆栈跟踪和其他相关信息以便我们停止这样做吗?