目次
今回は、C#でテキストファイルを読み込む方法を紹介していきます。
テキストファイルの書き込みは、こちらを参考にしてみてください。
それではさっそくやっていきましょう。
StreamReaderの使い方
テキストファイルを読み込むには、StreamReaderを使用していきます。
使用するときに、「System.IO」を宣言しておきましょう。
using System.IO;
StreamReader 宣言
まずは、StreamReaderを宣言をしていきます。
StreamReader sr = new StreamReader("ファイルパス");
「ファイルパス」の部分に、読み込みたいファイルパスを記載していきましょう。
宣言ができたら、テキストファイルを一括で読み込むのか、一行ずつ読み込むのかやり方が違いますので、
それぞれ紹介していきます。状況に応じて使い分けしていきましょう。
テキストファイル 一括読み込み
テキストファイルを一括読み込みする場合は、非常に簡単です。
下記のように、「ReadToEnd」を使用することで、一括読み込みすることができます。
文字列変数 = StreadReader.ReadToEnd();
文字列の変数に、テキストファイルの値が格納されています。
テキストファイル 一行読み込み
続いて、テキストファイルを1行ずつ読み込む方法を紹介します。
テキストファイルを1行ずつ読み込むには、「ReadLine」を使用していきます。
文字列の変数 = StreamReader.ReadLine();
文字列変数には、テキストファイルの1行が格納されていきます。
サンプルソース
それでは、実際にサンプルを見ていきましょう。
今回は、「D:\test\hironimo.txt」にテキストファイルを作成しました。
作成したファイルを読み込む画面を作成していきます。
サンプルソース 一括読み込む
テキストファイルを一括で読み込むサンプルを紹介します。
using System;
using System.Windows.Forms;
using System.IO;
namespace c_sharp
{
public partial class fileRead : Form
{
public fileRead()
{
InitializeComponent();
}
private void btnFileRead_Click(object sender, EventArgs e)
{
StreamReader sr = new StreamReader(@"D:\test\hironimo.txt");
txtFileRead.Text = sr.ReadToEnd();
sr.Close();
}
}
}
16行目~18行目でテキストファイルを読み込んでいます。
usingを使用した例も載せておきます。
using (StreamReader sr = new StreamReader(@"D:\test\hironimo.txt"))
{
txtFileRead.Text = sr.ReadToEnd();
}
結果
テキストファイルの値が、画面に表示されていることが確認できました。
サンプルソース 一行読み込み
続いて、一行ずつ読み込む方法を紹介していきます。
using System;
using System.Windows.Forms;
using System.IO;
namespace c_sharp
{
public partial class fileRead : Form
{
public fileRead()
{
InitializeComponent();
}
private void btnFileRead_Click(object sender, EventArgs e)
{
StreamReader sr = new StreamReader(@"D:\test\hironimo.txt");
string str= "";
while (sr.EndOfStream == false)
{
str = str + sr.ReadLine() + "\r\n";
}
txtFileRead.Text = str;
sr.Close();
}
}
}
}
解説
16行目~26行目でテキストファイルを読み込んでいます。
16行目:読み込むファイルを指定
18行目:EndOfStreamがTrueの時次の行はもうないので、Falseの間はループさせる。
20行目:テキストファイルを1行読み込む
usingを使用する例も載せておきます。
using (StreamReader sr = new StreamReader(@"D:\test\hironimo.txt"))
{
string str = "";
while (sr.EndOfStream == false)
{
str = str + sr.ReadLine() + "\r\n";
}
txtFileRead.Text = str;
}
テキストファイルの内容と同じ結果を取得することができましたね。
まとめ
今回は、テキストファイルの読み込み方を紹介しました。
一括で読み込むのか、一行ずつ読み込むのか状況に応じて使い分けていきましょう。
1行ずつ読み込むことで、条件分岐などができるので、とても便利です。