【C#】テキストファイルに行データを追記する (File.AppendAllLines)

既存のテキストファイルの末尾に、新しい行データを追加したい場合は System.IO.File.AppendAllLines メソッドを使用します。

このメソッドは、指定したファイルが存在しない場合は自動的に新規作成し、存在する場合は元のデータを消さずに、その続きからデータを書き込みます。

目次

実装サンプル:ログデータの追記

以下のコードでは、操作ログを記録するファイル(operation.log)に対して、新しいログ情報を追記しています。

サンプルコード

using System;
using System.IO;
using System.Collections.Generic;

public class Program
{
    public static void Main()
    {
        // 追記したいデータ(文字列の配列)
        string[] newLogs = new string[]
        {
            "[2025-01-07 14:00] サーバー接続開始",
            "[2025-01-07 14:01] データの同期完了",
            "[2025-01-07 14:02] 処理終了"
        };

        // 対象のファイルパス
        string filePath = "operation.log";

        try
        {
            Console.WriteLine("ログを追記します...");

            // File.AppendAllLines(ファイルパス, 追加データ)
            // 配列の各要素を、それぞれ新しい行としてファイルの末尾に追加します
            File.AppendAllLines(filePath, newLogs);

            Console.WriteLine("追記が完了しました。");

            // (確認用) ファイルの中身をすべて表示
            Console.WriteLine("\n--- 現在のファイル内容 ---");
            string currentContent = File.ReadAllText(filePath);
            Console.WriteLine(currentContent);
        }
        catch (Exception ex)
        {
            Console.WriteLine("エラーが発生しました: " + ex.Message);
        }
    }
}

実行結果(ファイルが元々空だった場合)

ログを追記します...
追記が完了しました。

--- 現在のファイル内容 ---
[2025-01-07 14:00] サーバー接続開始
[2025-01-07 14:01] データの同期完了
[2025-01-07 14:02] 処理終了

※このプログラムをもう一度実行すると、同じ内容がさらに下に追記されます。

解説

File.AppendAllLines の特徴

  1. 自動改行: 渡されたコレクション(配列やList)の要素ごとに、自動的に改行コードを挟んで書き込みます。自分で \n を連結する必要はありません。
  2. ファイルがない場合の動作: 指定したパスにファイルが存在しなければ、エラーにはならず、新しいファイルを作成して書き込みます。
  3. 引数の型: 第2引数には string[](配列)だけでなく、List<string>IEnumerable<string> を渡すことができます。

このメソッドは、ログの記録や、データの蓄積といった「履歴を残す」処理の実装において非常に効率的です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次