File.ReadLines
可能是您最好的选择,因为它为您提供IEnumerable
文本文件的一行,并在您遍历IEnumerable
. 然后,您可以使用任何方法来搜索您想要使用的行(Regex
、Contains
等)并对其进行处理。我下面的示例生成了一个线程来搜索该行并将其输出到控制台,但您几乎可以做任何事情。当然,TEST、TEST、TEST 对大文件看你的性能里程。我想如果下面生成的每个单独的线程花费太长时间,您可能会遇到线程限制。
IEnumerable<string> lines = File.ReadLines("myLargeFile.txt");
foreach (string line in lines) {
string lineInt = line;
(new Thread(() => {
if (lineInt.Contains(keyword)) {
Console.WriteLine(lineInt);
}
})).Start();
}
编辑:通过我自己的测试,这显然更快:
foreach (string lineInt in File.ReadLines("myLargeFile.txt").Where(lineInt => lineInt.Contains(keyword))) {
Console.WriteLine(lineInt);
}