首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于BinaryReader的EndOfStream

用于BinaryReader的EndOfStream
EN

Stack Overflow用户
提问于 2010-09-20 23:31:45
回答 5查看 15.7K关注 0票数 11

BinaryReader没有EndOfStream属性。使用下面的代码来检查是否到达了流的末尾是否安全?

reader.BaseStream.Length>reader.BaseStream.Position

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-09-20 23:35:51

那得看情况。有许多流类型没有实现Length或Position属性,你会得到一个NotSupportedException。例如,NetworkStream。当然,如果您要使用这样的流,那么您确实需要预先知道调用BinaryReader.Read()方法的频率。所以,是的,这很好。

票数 7
EN

Stack Overflow用户

发布于 2010-11-03 21:31:47

我发现的最简单的方法是检查BinaryReader的PeekChar()方法的返回值。如果它返回-1,那么您到达了流的末尾。

票数 10
EN

Stack Overflow用户

发布于 2010-09-20 23:35:47

这不是一般的解决方案,因为它假定BaseStream值支持Length属性。许多Stream实现并不这样做,而是抛出NotSupportedException。特别是诸如HttpRequestStreamNetworkStream任何网络基础流

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3752968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档