BinaryReader没有EndOfStream属性。使用下面的代码来检查是否到达了流的末尾是否安全?
reader.BaseStream.Length>reader.BaseStream.Position
发布于 2010-09-20 23:35:51
那得看情况。有许多流类型没有实现Length或Position属性,你会得到一个NotSupportedException。例如,NetworkStream。当然,如果您要使用这样的流,那么您确实需要预先知道调用BinaryReader.Read()方法的频率。所以,是的,这很好。
发布于 2010-11-03 21:31:47
我发现的最简单的方法是检查BinaryReader的PeekChar()方法的返回值。如果它返回-1,那么您到达了流的末尾。
发布于 2010-09-20 23:35:47
这不是一般的解决方案,因为它假定BaseStream值支持Length属性。许多Stream实现并不这样做,而是抛出NotSupportedException。特别是诸如HttpRequestStream和NetworkStream任何网络基础流
https://stackoverflow.com/questions/3752968
复制相似问题