阻止版本的System.IO.Stream.Read(byte [],int,int)

Hos*_*Aly 3 .net c#

我正在使用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;
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 9

BinaryReader.ReadBytes以所需方式阻止.但是,这并不等于读到流的末尾.(你不想打电话BinarReader.ReadBytes(int.MaxValue)- 它会尝试创建一个2GB的缓冲区!)

我倾向于使用MemoryStream来读取未知大小的流中的所有数据.有关示例代码,请参阅此相关问题.