C# | ゼロからはじめるプログラミング、30日で基礎を学ぶC#:基本機能を身に付ける - Day13:ファイル操作の練習問題

C# 30日で身につけるC#
スポンサーリンク
スポンサーリンク

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 → 行単位で書き込む(追記も可能)

これらを組み合わせることで、 メモ帳アプリやログ保存など、実用的なファイル操作が簡単に実現できます。

タイトルとURLをコピーしました