在C#中使用ReadBlock方法时,如何知道何时到达文件末尾?

abw*_*333 22 c# streamreader readblock

我注意到它会一遍又一遍地返回相同的读取字符,但我想知道是否有更优雅的方式.

har*_*ers 47

while(!streamReader.EndOfStream)
{
    string line = streamReader.ReadLine();
    Console.WriteLine(line);
}
Console.WriteLine("End of File");
Run Code Online (Sandbox Code Playgroud)

  • @Dan 你会建议什么作为解决方案而不是使用 ReadLine? (2认同)

Ste*_*end 5

检查StreamReader.EndOfStream。当这是true.

确保您的代码也正确处理ReadBlock调用时“刚刚读取的字节数”的返回值。听起来您看到读取的字节数为零,并且假设您看到的未更改缓冲区内容是对相同数据的另一次读取。