2010-09-15 46 views
2

从大日志文件(大约像2532910行)中,我正在寻找的行很少(如10或12)。匹配和阅读这些行的最佳方式是什么?我的代码是在C#中。读取器/流只能读取匹配数据的模式吗?解析日志文件并获取匹配的数据

感谢

回答

3

读这么大的文件的最好方法是使用streamReader.ReadLine()

就像这样:

StreamReader sr = new StreamReader(@"path_to_log"); 

int lineNum = 1; 
const int searchingLineNum = 10; 
string line = string.Empty; 

while (sr.Peek() != -1) 
{ 
    line = sr.ReadLine(); 

    if (lineNum == searchingLineNum) 
    { 
     break; 
    } 
    lineNum++; 
} 

Console.WriteLine(line); // do what you want with this line (parse using Regex) 
+0

这就是我现在所做的,我是寻找更快的解决方案。 – user393148 2010-09-15 19:17:19

+1

如果你想真正快速的解决方案,将loggin移动到数据库:) – 2010-09-15 21:54:10