当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《阻止版本的System.IO.Stream.Read(byte[],int,int)》经验,为你挑选了1个好方法。

我正在使用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来读取未知大小的流中的所有数据.有关示例代码,请参阅此相关问题.



1> Jon Skeet..:

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

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

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有