我使用以下简单代码遍历大文件的每一行:
using (var reader = new StreamReader(@"C:\SomeBigFile.txt"))
{
while (reader.ReadLine() != null)
{
var line = reader.ReadLine();
// some more stuff
}
}
大约7000000行发现一个空行,在该reader之后.ReadLine()返回null。因此代码终止。但是,当我期望文本编辑器中的文件时,此后肯定会有更多行,并且返回行为空的行看不到问题。有没有办法使上述内容真正完成读取文件?谢谢!
答案 0 :(得分:5)
您暂时跳过了一行。这就是为什么您丢失数据的原因。
尝试一下:
using (var reader = new StreamReader(@"C:\SomeBigFile.txt"))
{
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
// some more stuff
}
}
大多数情况下我正在使用此
var filename = @"C:\SomeBigFile.txt";
foreach(var line in File.ReadLines(filename))
{
// ....
}
它返回一个IEnumerable<string>
,它逐行读取文件。