我正在以以下方式读取大型csv文件(每个文件约有350K行):
StreamReader readFile = new StreamReader(fi);
string line;
string[] row;
readFile.ReadLine();
while ((line = readFile.ReadLine()) != null)
{
row = line.Split(';');
x=row[1];
y=row[2];
//More code and assignations here...
}
readFile.Close();
}
这里的重点是,每个月按行阅读一个巨大的文件可能会很慢,我认为必须有另一种更快的方法来处理它。
ReadLine()
循环、基于自定义缓冲区方法(该方法不创建字符串,而是将小的值类型偏移量大小对存储到缓冲区中)和ReadAllLines()
进行了性能基准测试,结果ReadLine()
循环表现最好。请专注于优化您的处理过程。 - CameronSplit
和ReadLine
解析 csv 时,要小心,因为如果数据中有引号内的分隔符或换行符,会读取不正确。使用类似 Microsoft.VisualBasic.FileIO.TextFieldParser 的工具会更安全。 - Andy Nichols