C#中高效的文件读取技术

时间:2009-11-20 09:42:41

标签: c#-3.0

我正在寻找逐行读取CSV文件的最佳方法。我想知道做同样事情的最有效方法是什么。当文件的大小很大时,我特别担心。 .NET类中的文件读取实用程序是否最有效?

(PS:我已经搜索了“Efficient”这个词,以便在发布此内容之前知道某人是否已经发布了类似的问题。)

2 个答案:

答案 0 :(得分:3)

您可以尝试:fast CSV Parser

以下是基准测试结果:

  

为了提供更多的地球数字,   使用包含145的45 MB CSV文件   阅读器,字段和50,000条记录   处理大约30 MB /秒。所以   总共需要1.5秒!该   机器规格为P4 3.0 GHz,1024   MB。

答案 1 :(得分:1)

.NET中的文件处理很好。如果您想使用foreach以一种舒适的方式一次阅读一行,我可能需要查看simple LineReader class(在MiscUtil中使用更通用的版本)。

您可以使用:

foreach (string line in new LineReader(file))
{
    // Do the conversion or whatever
}

它也很容易与LINQ一起使用。您可能会或可能不会觉得这有用 - 如果Ngu Soon Hui的建议适合您,那可能是更好的“现成”解决方案。