我不知道我在这里做错了什么。我的代码在第一次通过时按预期工作,但在第二次通过时它不会运行并抛出一个异常,只是说“读取将超出缓冲区%”
我收集我的缓冲区做错了,它不喜欢我覆盖它?
我有基本相同的代码并将其更改为匹配 msdn 示例,但没有乐趣..
using (Stream stream = new FileStream(path, FileMode.Open, FileAccess.Read))
{
byte[] buffer = new byte[1024];
int bytesRead = 0;
long bytesToRead = stream.Length;
while (bytesToRead > 0)
{
int n = stream.Read (buffer, bytesRead, 1024);
if (n == 0) break;
//do work on buffer...
bytesRead += n;
bytesToRead -= n;
}
}
在 .Net 2.0 Mono 中工作。