刚开始想到是用文件映射,用C++做这个的比较多,后来找到CsvReader,发现速度还不错,使用也很简单!
CsvReader可以快速读取比较大的TXT文件,当然CSV文件也是可以读取的,我测试过20M左右感觉不到卡,再大就没测过了
using System.IO;
using LumenWorks.Framework.IO.Csv;
void ReadCsv()
{
// open the file "data.csv" which is a CSV file with headers
using (CsvReader csv =
new CsvReader(new StreamReader("data.csv"), true))
{
int fieldCount = csv.FieldCount;
string[] headers = csv.GetFieldHeaders();
while (csv.ReadNextRecord())
{
for (int i = 0; i < fieldCount; i++)
Console.Write(string.Format("{0} = {1};",
headers[i], csv[i]));
Console.WriteLine();
}
}
}
上面的true表示有CSV文件有标题行,如果是读取TXT,要把true改成false
具体用法在codeproject上,自己下载看吧:
http://www.codeproject.com/KB/database/CsvReader.aspx