Click here to Skip to main content
15,881,173 members
Articles / Web Development / ASP.NET

A Fast CSV Reader

Rate me:
Please Sign up or sign in to vote.
4.93/5 (545 votes)
13 Jan 2016MIT8 min read 8.3M   164.8K   1.5K  
A reader that provides fast, non-cached, forward-only access to CSV data.
#region Using directives

using System;
using System.IO;
using System.Text;

using LumenWorks.Framework.IO.Csv;

#endregion

namespace CsvReaderDemo
{
	public sealed class CachedCsvReaderBenchmark
	{
		private CachedCsvReaderBenchmark()
		{
		}

		public static CachedCsvReader Run1(string path)
		{
			return Run1(path, -1);
		}

		public static CachedCsvReader Run1(string path, int field)
		{
			CachedCsvReader csv = new CachedCsvReader(new StreamReader(path), false);

			string s;

			if (field == -1)
			{
				while (csv.ReadNextRecord())
				{
					for (int i = 0; i < csv.FieldCount; i++)
						s = csv[i];
				}
			}
			else
			{
				while (csv.ReadNextRecord())
					s = csv[field];
			}

			return csv;
		}

		public static void Run2(CachedCsvReader csv)
		{
			Run2(-1, csv);
		}

		public static void Run2(int field, CachedCsvReader csv)
		{
			using (csv)
			{
				string s;

				if (field == -1)
				{
					while (csv.ReadNextRecord())
					{
						for (int i = 0; i < csv.FieldCount; i++)
							s = csv[i];
					}
				}
				else
				{
					while (csv.ReadNextRecord())
						s = csv[field];
				}
			}
		}
		
	}
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The MIT License


Written By
Architect
Canada Canada
Sébastien Lorion is software architect as day job.

He is also a musician, actually singing outside the shower Smile | :)

He needs constant mental and emotional stimulation, so all of this might change someday ...

Comments and Discussions