Эффективные способы записи файлов CSV на C# без внешних библиотек

Файлы CSV (значения, разделенные запятыми) обычно используются для хранения данных и обмена ими между различными системами. Хотя для обработки файлов CSV на C# доступно несколько внешних библиотек, в этой статье основное внимание будет уделено различным методам записи файлов CSV без использования каких-либо внешних библиотек. Мы рассмотрим различные подходы с использованием встроенных возможностей C# для эффективной записи файлов CSV.

Метод 1: использование StringBuilder

using System;
using System.IO;
using System.Text;
class Program
{
    static void Main(string[] args)
    {
        string[] data = { "Name, Age", "John, 25", "Jane, 30", "Mark, 35" };
        StringBuilder csvContent = new StringBuilder();
        foreach (string line in data)
        {
            csvContent.AppendLine(line);
        }
        File.WriteAllText("output.csv", csvContent.ToString());
    }
}

Метод 2: использование StreamWriter

using System;
using System.IO;
class Program
{
    static void Main(string[] args)
    {
        string[] data = { "Name, Age", "John, 25", "Jane, 30", "Mark, 35" };
        using (StreamWriter writer = new StreamWriter("output.csv"))
        {
            foreach (string line in data)
            {
                writer.WriteLine(line);
            }
        }
    }
}

Метод 3: использование File.WriteAllLines

using System;
using System.IO;
class Program
{
    static void Main(string[] args)
    {
        string[] data = { "Name, Age", "John, 25", "Jane, 30", "Mark, 35" };
        File.WriteAllLines("output.csv", data);
    }
}

Метод 4: использование FileStream

using System;
using System.IO;
using System.Text;
class Program
{
    static void Main(string[] args)
    {
        string[] data = { "Name, Age", "John, 25", "Jane, 30", "Mark, 35" };
        using (FileStream fileStream = new FileStream("output.csv", FileMode.Create))
        {
            foreach (string line in data)
            {
                byte[] lineBytes = Encoding.UTF8.GetBytes(line + Environment.NewLine);
                fileStream.Write(lineBytes, 0, lineBytes.Length);
            }
        }
    }
}

В этой статье мы рассмотрели различные способы записи файлов CSV на C# без внешних библиотек. Мы рассмотрели четыре различных подхода с использованием собственных возможностей C#, включая StringBuilder, StreamWriter, File.WriteAllLines и FileStream. Эти методы предоставляют эффективные способы создания файлов CSV, позволяя экспортировать данные, не полагаясь на внешние зависимости.