読者です 読者をやめる 読者になる 読者になる

C#でCSVファイルからデータ読み込む(StreamReaderクラスとString.Splitメソッドによる方法)

ファイルへの書き込みは以下
C#でCSVファイルにデータを書き込む

ソースコード

ファイルからの読み込みにはStreamReaderクラスを,文字をカンマごとに区切るのにはString.Splitメソッドを使用する.

Nugetで検索したら便利そうなライブラリはたくさんあるし,Microsoft.VisualBasic.dllに含まれるTextFieldParserクラスを使う方法とかもあるが,ここではお手軽に使えるStreamReaderとString.Splitを使用.

以下は,CSVファイルから読み込んだ値をスペース区切りで画面に出力するプログラム.
ダブルクォートがあってもそのまま除去できないし,データにカンマが含まれるものも扱えない.タイトル行とかももちろん認識しない.

static void ReadCsv()
{
    try
    {
        // csvファイルを開く
        using (var sr = new System.IO.StreamReader(@"test.csv"))
        {
            // ストリームの末尾まで繰り返す
            while (!sr.EndOfStream)
            {
                // ファイルから一行読み込む
                var line = sr.ReadLine();
                // 読み込んだ一行をカンマ毎に分けて配列に格納する
                var values = line.Split(',');
                // 出力する
                foreach (var value in values)
                {
                    System.Console.Write("{0} ", value);
                }
                System.Console.WriteLine();
            }
        }
    }
    catch (System.Exception e)
    {
        // ファイルを開くのに失敗したとき
        System.Console.WriteLine(e.Message);
    }
}