テキストファイルを開き、ファイル内容を読み込むコードと実行結果を紹介します。
ファイルを開き、ファイル内のテキストを読み出します。一回の読み込みでファイル内のテキストをすべて読み取る実装を紹介します。
下図のUIを準備します。TextBox, Label, Button, OpenDialog をひとつずつ配置します。
下記のコードを記述します。(button1のclickイベントを実装します。)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace TextFileBulkRead
{
public partial class FormMain : Form
{
public FormMain()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) {
label1.Text = openFileDialog1.FileName;
FileStream fs = new FileStream(openFileDialog1.FileName, FileMode.OpenOrCreate);
StreamReader sr = new StreamReader(fs, System.Text.Encoding.GetEncoding("Shift_JIS"));
string doc = sr.ReadToEnd();
textBox1.Text += doc;
sr.Close();
fs.Close();
}
}
}
}
ファイルを開くダイアログを開きます。ダイアログでファイルが選択された場合に、if文内が実行されます。
if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) {
...
}
選択されたファイルのファイル名をLabelに表示します。FileStreamを用いて選択されたファイルを開きます。開いたストリームから、ファイル内容を読み取るためのStreamReaderを作成します。ファイル読み込み時のエンコーディングはShift-JISとします。
label1.Text = openFileDialog1.FileName;
FileStream fs = new FileStream(openFileDialog1.FileName, FileMode.Open);
StreamReader sr = new StreamReader(fs, System.Text.Encoding.GetEncoding("Shift_JIS"));
StreamReaderのReadToEnd()メソッドを呼び出し、ファイルの内容をすべて読み出します。読み出した結果をTextBoxに表示します。最後に、StreamReaderとFileStreamを閉じます。
string doc = sr.ReadToEnd();
textBox1.Text += doc;
sr.Close();
fs.Close();
プロジェクトを実行します。下図のウィンドウが表示されます。
[button1]をクリックします。ファイルを開くダイアログが表示されます。読み込むファイルを選択します。
ファイルを読み込みファイル内容をテキストボックスに表示します。ファイルの内容がテキストボックスに表示できています。
以上でファイルの読み込みができました。
Windows Formアプリケーションを作成します。
下図のUIを作成します。Buttonと複数行のTextBox、openFileDialogを配置します。今回のプログラムでは[button1]のみを利用します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace TextFileReadWrite
{
public partial class FormMain : Form
{
public FormMain()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK) {
string file = openFileDialog1.FileName;
StreamReader sr = new StreamReader(file, Encoding.GetEncoding("SHIFT_JIS"));
textBox1.Text = sr.ReadToEnd();
sr.Close();
}
}
}
}
DialogResult.OK
になりif文のブロックが実行されます。 if (openFileDialog1.ShowDialog() == DialogResult.OK) {
/* 中略 */
}
openFileDialog で選択されたファイル名を FileNameプロパティから取得します。StreamReaderクラスのインスタンスを作成しファイルを開きます。
string file = openFileDialog1.FileName;
StreamReader sr = new StreamReader(file, Encoding.GetEncoding("SHIFT_JIS"));
StreamReader クラスのReadToEnd()
メソッドを呼び出して、ファイルからテキストをまとめて読み出します。
textBox1.Text = sr.ReadToEnd();
ファイルの読み込み完了後、ファイルを閉じます。
sr.Close();
プロジェクトを実行します。下図のウィンドウが表示されます。
[button1]をクリックします。ファイルを開くダイアログが表示されます。読み込むテキストファイルを選択します。
テキストファイルが読み込まれ、テキストボックスに表示されます。