C#_テキストファイルの読み込み ( StreamReader )

下記のようなCSVファイルを読み込む。

a, b, c, d, e, f
A, B, C, D, E, F
g, h, i, j, k
G, H, I, J, K

 

※テキストファイルがUTF-8 の場合、第二引数の Encoding を省略できる。

//ファイルの読込み
using (StreamReader sr = new StreamReader(@"ファイルパス\ファイル名"))
{
    List<string[ ]> getStr = new List<string[ ]>();

    while (!sr.EndOfStream)
    {
        //ファイルから一行読み込む
        string line = sr.ReadLine();

        //読み込んだ一行をカンマごとに分けて配列に格納
        getStr.Add(line.Split(','));
    }
}

getStr の中身は、
getStr[0] = { a, b, c, d, e, f }
getStr[1] = { A, B, C, D, E, F }
getStr[2] = { g, h, i, j, k }
getStr[3] = { G, H, I, J, K }
となる。
ex) getStr[0][1] は b を示す。

 

クラス・メソッド 説明
 StreamReader ファイル名を指定して開く。最も使用されている。
stream:流れ、川。
ストレージからストレージへのデータの
流れのことを指す。
ファイルもストレージの一種。
 StreamReader.EndOfStream  現在位置が、末尾がどうかを示す値を取得する。
末尾の場合は trueそれ以外は false
 StreamReader.ReadLine  ファイルから1 行だけを読み取る。
読み取り位置が最後に達した場合には、
Null を返す。

 

( 注 )

・上記のコードでは例外発生時に中断する。
ファイルが存在しない場合、ファイルの読み取り中に障害が発生した場合、
例外が発生してプログラムが中断するので、その対策に
try catch 文を記述する必要あり。

 

こちらから。
http://whoopsidaisies.hatenablog.com/entry/2013/11/22/130256
http://www.atmarkit.co.jp/ait/articles/0306/13/news003.html
https://msdn.microsoft.com/ja-jp/library/system.io.streamreader.endofstream(v=vs.110).aspx
http://www.atmarkit.co.jp/fdotnet/csharptips/005file/005file.html
http://dobon.net/vb/dotnet/file/readfile.html

 

 

 以上。

---Memo---
・カンマ区切り関係なく、1 行取り込みたい場合は、
string 型配列の List でなく、string 型の List に入れる。
List<string> get = new List<string>();
get.Add(line);

・全てのテキストを 1 つの文字列として読み込む場合は、
string all = sr.ReadToEnd();