ファイルの読み込み書き込み

C# ファイルの読み込み方法を3つ紹介します。読み込み方法で一番良いのはReadLinesメソッドの理由

今回のテーマ

こんばんは、かっぱちゃんです!

今回は下記のテーマについて書いていきます。

今回のテーマ

ファイルの読み込み方法3選

ファイルの読み込み方法について、書いていこうと思います。

よく使う読み込み方法を3つ紹介していくので、場合と状況に応じて使い分けてください。

今回はファイルの読み込みについて解説するかっぱ!
KappaChan

前回の記事です。

CHECK

C# Linq ファイルの書き込み方法を紹介 Linqの抽出結果を書き込むことも可能です。 

今回のテーマContents1 今回のテーマ2 ファイルに1行ずつ書き込む方法3 配列、リストの文字列をファイルに一気に書き込む方法4 配列、リストの文字列をファイルに一気に追加する方法5 配列、リス ...

続きを見る

ファイルの読み書きについての記事はこちら

ファイルの内容を1行ずつ読み込む方法

まずはファイルの読み込み方法について解説します。

まずは読み込むファイルを準備しましょう。

読み込むファイルについて

ファイルは下記フォルダにrobot.txtを格納しました。

 folder
D:\test

一応、フォルダの写真も載せておきます。

ファイルの中身は下記ようにロボット名が書かれています。

 robot.txt
Rockman
Roll
Fireman
Iceman

早速、ファイルを読み込んでみます。

ファイルの読み込み方法

 result
Rockman
Roll
Fireman
Iceman

ファイルの内容を出力することができました。

各行の内容について解説します。

ポイント

2行目:StreamReaderを使用するために必要なので、インポートしましょう。

10行目:ファイルのパスを指定しています。@を付けると\のエスケープ文字を指定しなくても良くなります。

11行目:ファイルを読むこむ為のストリームを生成しています。引数にはパスを指定するだけです。usingを使用すると、処理が終わったあとに自動的にファイルのクローズしてくれます。

13行目:ファイルの内容が終わるまで1行ずつ繰り返しを行います。EndOfStreamは内容が終端の場合はtrue、それ以外の場合はfalseを返します。

15行目:ファイルの内容を出力しています。

上記のソースコードを記述すれば、ファイルを読み込むことが可能です。

ストリームを指定するときの引数は第2引数にエンコードを指定することが多いです。

ファイルの内容を1度に読み込む方法

前の読み込み方法はファイルを1行ずつ読み込む方法でしたが、ファイルの内容をメモリに一気に読み込むこともできます。

下記のようにソースコードを記述してください。

ファイルの読み込み方法

 result
Rockman
Roll
Fireman
Iceman

どのように、ファイルの内容を出力できています。

ポイント

11行目:ReadAllLinesを使用することで、ファイルの内容を1度に読み込んでいます。string型の配列として、内容を返してくれます。

1行ずつ読み込むよりもメリットが多いように感じますが、読み込む内容が大きいとメモリが枯渇するので気を付けてください。

ファイルの内容が変わることが想定される場合は、バグの原因となるので使わない方が良いと思います。

ファイルの読み書きについての記事はこちら

ファイルの内容を読み込む方法(Linqを使用するのに適した読み込み方)

3つ目の読み込み方が一番おすすめです。まず、ソースコードを紹介します!

 result
Rockman
Roll
Fireman
Iceman

読み込み方法はReadLinesを使用します。このメソッドのメリットは下記です。

ポイント

・返してくれる型がIEnumerable<String>だからLinqを自由に使用できる。

・実際に行が必要となったタイミングでファイルを読み込んでくれるので、メモリの枯渇も心配ない。

1つ目のメリットはIEnumerable<String>型で返してくれるので、Linqを自由に使用することができます。

なので、下記のように記述することも可能です。

読み込んだファイルにLinqを使用する

 command
Rockman
Fireman
Iceman

条件に指定した内容を取り出すことが出来ています。

1つ目のメリットのみでもとても優秀なのですが、Linqを使うだけであれば、ReadAllLinesメソッドでも使用することが出来ます。

上記のメソッドとの大きな違いは必要となるタイミングで行を読み込むことです。この仕様のおかげメモリ不足でバグになることはなくなります。

処理内容はStreamReaderで1行ずつ読み込むのをイメージして頂ければ良いでしょう。

ReadLinesメソッドの応用的な使い方はこちら

こちらもCHECK

C# Linq ファイルのn番目に文字列を挿入する方法 ReadLinesメソッド、WriteAllLinesメソッドを使用してみよう!

今回のテーマContents1 今回のテーマ1.1 今回使用するファイルの内容1.2 1行目に挿入する方法1.3 n番目に挿入する方法1.4 一番最後の行に挿入する方法1.5 まとめ 今回は既に内容が ...

続きを見る

まとめ

今回はファイルの読み込み方法を3つ紹介しました。

基本的に3つ目に紹介したReadLinesを使うことをおすすめします。

今回はテキストファイルの読み込み方を紹介しましたが、他の拡張ファイルの読み込み方の記事を別記事で書いていきたいと思います。

ここまで記事を読んで頂きありがとうございました。

KappaChan
最後までみてくれてありがとうかっぱ!”

ファイルの読み書きについての記事はこちら

-ファイルの読み込み書き込み

X