Day13 ファイル操作・練習問題と解答解説
Day13 で学んだ File / StreamReader / StreamWriter を確実に身につけるために、 初心者でも理解しやすい練習問題と丁寧な解答・解説をまとめています。 ファイル操作は「アプリを実用的にするための必須技術」ですので、ここでしっかり定着させてください。
File の練習問題
問題
memo.txt というファイルに「こんにちは、ファイル操作の練習です。」という文字を書き込み、 その後、ファイルの内容を読み込んで表示してください。
解答と解説
File.WriteAllText("memo.txt", "こんにちは、ファイル操作の練習です。");
string text = File.ReadAllText("memo.txt");
Console.WriteLine(text);
C#File.WriteAllText は「ファイルに一気に書き込む」メソッドです。 File.ReadAllText は「ファイルを一気に読み込む」メソッドです。
短いテキストを扱う場合は File クラスが最も簡単で便利です。
StreamReader の練習問題
問題
data.txt に複数行のテキストが入っているとします。 StreamReader を使って、ファイルの内容を1行ずつ読み込み、すべて表示してください。
解答と解説
using (StreamReader reader = new StreamReader("data.txt"))
{
string line;
while ((line = reader.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
C#StreamReader は「ファイルを行単位で読みたいとき」に使います。 ReadLine は「1行ずつ読み込む」メソッドで、 null が返ってきたらファイルの終わりです。
using を使うことで、 ファイルを開いたままにしてしまう危険を防ぎます。
StreamWriter の練習問題
問題
output.txt に 「1行目のテキスト」 「2行目のテキスト」 を順番に書き込んでください。
解答と解説
using (StreamWriter writer = new StreamWriter("output.txt"))
{
writer.WriteLine("1行目のテキスト");
writer.WriteLine("2行目のテキスト");
}
C#StreamWriter は「ファイルに少しずつ書き込む」ためのクラスです。 WriteLine を使うことで、行単位で書き込むことができます。
StreamWriter(追記モード)の練習問題
問題
log.txt に「ログを追記します」という文字を、 既存の内容を消さずに追記してください。
解答と解説
using (StreamWriter writer = new StreamWriter("log.txt", true))
{
writer.WriteLine("ログを追記します");
}
C#StreamWriter の第2引数に true を指定すると「追記モード」になります。 ログ保存や履歴管理では必須のテクニックです。
応用問題:メモ帳アプリの基礎
問題
ユーザーが入力したメモを memo.txt に保存し、 その後、保存された内容を読み込んで表示してください。
解答と解説
Console.Write("メモを入力してください:");
string memo = Console.ReadLine();
using (StreamWriter writer = new StreamWriter("memo.txt"))
{
writer.WriteLine(memo);
}
using (StreamReader reader = new StreamReader("memo.txt"))
{
string text = reader.ReadToEnd();
Console.WriteLine("保存されたメモ:");
Console.WriteLine(text);
}
C#StreamWriter → 保存 StreamReader → 読み込み
という流れが自然につながり、 簡易メモ帳アプリの基本構造が完成します。
応用問題:ログ保存の基礎
問題
現在時刻を含むログを log.txt に追記し、 その後、ログをすべて読み込んで表示してください。
解答と解説
string log = DateTime.Now.ToString() + " : ログを追加しました";
using (StreamWriter writer = new StreamWriter("log.txt", true))
{
writer.WriteLine(log);
}
using (StreamReader reader = new StreamReader("log.txt"))
{
string line;
Console.WriteLine("ログ一覧:");
while ((line = reader.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
C#ログは「追記」が基本です。 StreamWriter の追記モードを使うことで、 既存のログを消さずに新しいログを追加できます。
Day13 練習問題まとめ
Day13 の練習問題では、次のポイントを確認しました。
File → 一気に読み書きする StreamReader → 行単位で読み込む StreamWriter → 行単位で書き込む(追記も可能)
これらを組み合わせることで、 メモ帳アプリやログ保存など、実用的なファイル操作が簡単に実現できます。
