我正在使用System.IO.Stream.Read(byte[] buffer, int offset, int count)
.是否有替代该方法(或要设置的属性),以便在读取所有计数(或达到流的末尾)之前该方法不会返回?或者我应该做这样的事情:
int n = 0, readCount = 0; while ((n = myStream.Read(buffer, readCount, countToRead - readCount)) > 0) readCount += n;
Jon Skeet.. 9
BinaryReader.ReadBytes以所需方式阻止.但是,这并不等于读到流的末尾.(你不想打电话BinarReader.ReadBytes(int.MaxValue)
- 它会尝试创建一个2GB的缓冲区!)
我倾向于使用MemoryStream来读取未知大小的流中的所有数据.有关示例代码,请参阅此相关问题.
BinaryReader.ReadBytes以所需方式阻止.但是,这并不等于读到流的末尾.(你不想打电话BinarReader.ReadBytes(int.MaxValue)
- 它会尝试创建一个2GB的缓冲区!)
我倾向于使用MemoryStream来读取未知大小的流中的所有数据.有关示例代码,请参阅此相关问题.