Reading and Writing Delimited Files in .Net Core
I often need to read and write files in delimited files from within a .Net Core application. It seems that there is no inbuilt parser for doing this so I wrote one.
The code consists of a single static class “DelimtedFile” that has two methods, one to read a delimited file and one to write one.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
namespace ReadAndWriteDelimtedFiles
{
public static class DelimtedFile
{
/// <summary>
/// Reads a delimited file into a List of strings lists.
/// </summary>
/// <param name="filePath">The path to the file</param>
/// <param name="delimter">The delimiter used
/// to parse the items within each line of the file.</param>
/// <returns></returns>
public static List<List<string>> ReadDelimtedFile(string filePath,
char delimter)
{
var lines = new List<List<string>>();
var fileLines = File.ReadAllLines(filePath);
foreach (var line in fileLines)
{
var lineList = new List<string>();
lineList.AddRange(line.Split(delimter));
lines.Add(lineList);
}
return lines;
}
/// <summary>
/// Writes the data in linesList into a
/// output specificed by path using the delimiter.
/// If headerList is not null inlcudes the header
/// at the top of the file.
/// </summary>
/// <param name="path">The path to the file to
/// write the delimited file.</param>
/// <param name="linesList">The contents of the
/// file to write out</param>
/// <param name="headerList">The header line for
/// the file, if null no header is included</param>
/// <param name="delimiter">The delimiter for
/// the items in linesList</param>
public static void WriteDelimtedFile(string path,
List<List<string>> linesList,
List<string> headerList,
char delimiter)
{
var lines = new List<string>();
if (headerList != null)
{
lines.Add(headerList.Aggregate((i, j) => i + delimiter + j));
}
lines.AddRange(linesList.Select(listString =>
listString.Aggregate((i, j) => i + delimiter + j)));
File.WriteAllLines(path, lines.ToArray());
}
}
}
2 thoughts on “Reading and Writing Delimited Files in .Net Core”
I was looking at some of your articles on this site and I believe this internet site is really instructive! Keep on posting .
This design is spectacular! You