从具有不同列数的逗号分隔文本文件中读取值的最快方法

时间:2013-03-14 12:00:38

标签: c# .net csv delimited-text

enter image description here

使用c#?将文本文件中的值(请参阅上面的示例屏幕截图)读取到excel或.csv文件中的速度最快的方法是什么。

第一行将始终具有列名称,在此示例中,它们是6列,但这不是标准。在另一个文件中,列可以是4或9.

跳过那些空行也很不错。

请注意,文本文件可以大到2或4 GB。

感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用BufferedStream作为现有流的缓冲区,即FileStream,这将有助于提升效果。

using (FileStream fs = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
using (BufferedStream bs = new BufferedStream(fs))
using (StreamReader sr = new StreamReader(bs))
{
   string line;
   while ((line = sr.ReadLine()) != null)
   {

   }
}

来源:

Reading large text files with streams in C# http://msdn.microsoft.com/en-us/library/system.io.bufferedstream.aspx