0
我想读取一个巨大的文件。以前我用File.ReadLines
不会将整个数据读入内存。现在我需要在迭代时访问前一个&下一行。我试着阅读整个文件,但得到了OutofMemoryException
。用指数快速读取文件
然后我开始搜索解决方案,发现我可以使用Linq。我尝试使用以下内容:
var inputLines = File.ReadLines(filePath);
int count = inputLines.Count();
for (int i = 0; i < count; i++)
{
string line = inputLines.Skip(i).Take(1).First();
}
这很慢。我认为每次跳过,然后继续,每次循环时都会一遍又一遍读取所有行。
有没有更好的方法来做到这一点?我现在唯一能想到的解决方案就是将我的文件分割成更小的块,这样我就可以读取它,但我无法真正相信没有解决方法。
我需要阅读当前行我读的从previousLine和nextLine。我想你的方式,但它会有点复杂。当我解析数据时,会有很多if语句。 – ykh
对不起,我刚刚意识到你还想要下一行。我更新了我的建议解决方案我相信你只需要单一的if语句吧? –