C# 代码在大文件上循环时过早终止
我在一个大文件的每一行上循环,起诉这个直截了当的代码:C# 代码在大文件上循环时过早终止,c#,C#,我在一个大文件的每一行上循环,起诉这个直截了当的代码: using (var reader = new StreamReader(@"C:\SomeBigFile.txt")) { while (reader.ReadLine() != null) { var line = reader.ReadLine(); // some more stuff } } 在第7000000行左右找到一个空行,在该reader.ReadLine()之后
using (var reader = new StreamReader(@"C:\SomeBigFile.txt"))
{
while (reader.ReadLine() != null)
{
var line = reader.ReadLine();
// some more stuff
}
}
在第7000000行左右找到一个空行,在该reader.ReadLine()之后返回null。因此代码终止。但是,当我希望文件在文本编辑器中时,之后肯定会有更多的行,并且我看不到返回空行的行存在问题。有没有办法让上述人员真正完成文件的读取?谢谢 您正在跳过一行。这就是您丢失数据的原因 试试这个:
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
,逐行读取文件。您正在跳过一行。这就是您丢失数据的原因
试试这个:
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
,逐行读取文件。reader.ReadLine()
读取一行。另一个reader.ReadLine()
读取另一行。reader.ReadLine()
读取一行。另一个reader.ReadLine()
读取另一行。