入出力
スポンサーリンク
テキストファイルの読み込み
テキストファイルからテキストを読み込むには,StreamReader クラス (System.IO 名前空間) を利用します。
using System;
using System.IO;
class Program
{
static void Main()
{
StreamReader reader =
new StreamReader("hoge.txt"); // ファイルを開く
string text = reader.ReadToEnd(); // テキストを読み込む
reader.Close(); // ファイルを閉じる
}
}
System.IO 名前空間
StreamReader クラス
[MSDN]
StreamReader コンストラクタ
ファイルを開きます。
StreamReader(string path)
ReadToEnd メソッド
ファイルのテキストを最後まで読み込みます。
string ReadToEnd()
Close メソッド
ファイルを閉じる。
void Close()
StreamReader クラスは,デフォルトでは UTF-8 でファイルを読み込みます。
ファイルのエンコーディングがわかっているときは,エンコーディングを指定できるコンストラクタのオーバーロードバージョンも利用できます。
テキストファイルへの書き込み
テキストファイルにテキストを書き込むには,StreamWriter クラス (System.IO 名前空間) を利用します。
using System;
using System.IO;
class Program
{
static void Main()
{
StreamWriter writer =
new StreamWriter("piyo.txt"); // ファイルを開く
writer.Write("This is some sample text."); // テキストを書き出す
writer.Close(); // ファイルを閉じる
}
}
System.IO 名前空間
StreamWriter クラス
[MSDN]
StreamWriter コンストラクタ
ファイルを開きます。
StreamWriter(string path)
Write メソッド
ファイルにテキストを書き込む。
void Write(string text)
Close メソッド
ファイルを閉じる。
void Close()
using 文
次のように using 文を使うと,ブロックの最後で自動的に Dispose メソッドが呼び出され,リソースの解放漏れを防ぐことができます。
この構文は IDisposable インタフェースを実装しているクラスに対して利用できます。
using (StreamReader reader = new StreamReader("hoge.txt"))
{
text = reader.ReadToEnd();
}
以下のように,ブロックを導入しない構文も使うことができます (C# 8.0 以降)。
using StreamReader reader = new StreamReader("hoge.txt");
text = reader.ReadToEnd();
これらの using 文は,リソースを明示的に解放する以下の try-finally 文のシンタックスシュガーと考えることができます。
StreamReader reader = new StreamReader("hoge.txt");
try
{
text = reader.ReadToEnd();
}
finally
{
if (reader != null)
{
reader.Dispose();
}
}
スポンサーリンク