有没有理由不在具有位置和长度的C#流中检查EOF?

时间:2013-08-06 19:02:03

标签: c# filestream eof

在寻找直到FileStream结束时阅读的好方法时,我遇到了一个较旧的帖子C# - Stream/FileStream EOF,其中提供了三个答案(虽然没有接受)。但是,在使用它们时,我还记得FileStream对象具有Position和Length属性。在我看来(对于一个适当开放的FileStream fs

while (fs.Position < fs.Length)
{
    // Read more from file
}

应该是直到文件结尾才能读取的直接方式。虽然没有提到这种方法和那些属性,但我只是好奇:

这有什么不利之处,其他属性或方法可能会避免吗?

1 个答案:

答案 0 :(得分:1)

一个缺点是并非所有Stream个实例都有长度。 Stream可以支持没有确定长度的网络连接。因此Length属性只会抛出异常。