【发布时间】:2011-05-15 11:51:13
【问题描述】:
我有一个 1 GB 的文本文件,我需要逐行阅读。最好和最快的方法是什么?
private void ReadTxtFile()
{
string filePath = string.Empty;
filePath = openFileDialog1.FileName;
if (string.IsNullOrEmpty(filePath))
{
using (StreamReader sr = new StreamReader(filePath))
{
String line;
while ((line = sr.ReadLine()) != null)
{
FormatData(line);
}
}
}
}
在FormatData() 中,我检查必须与一个单词匹配的行的起始单词,并基于该增量一个整数变量。
void FormatData(string line)
{
if (line.StartWith(word))
{
globalIntVariable++;
}
}
【问题讨论】:
-
您可能想发帖
FormatData(或简化版),以防万一。 -
@Matthew:忽略 FormatData(),实际上整个过程很慢,所以为了排除故障,我已经发表了评论。
-
如果你想要一个快速的解决方案,你不能忽略
FormatData,你最好在一个单独的线程中格式化数据,而不是读取数据。 -
您没有提供太多关于如何访问
globalIntVariable的背景信息。鉴于FormatData的实现,按顺序读取这些行是否重要?如果不读取多个更大的数据块并同时聚合全局变量会更有效。 -
您应该发布您已经尝试过的解决方案的实际基准数据。
标签: c# .net streamreader