プログラム内で扱っている「文字列の配列」や「リスト」を、そのままファイルに保存したい場合、C# の System.IO.File クラスにある WriteAllLines メソッドを使うのが最もスマートです。
このメソッドを使えば、StreamWriter を使ってループ処理を書く必要がなく、たった1行でデータの書き出しが完了します。
目次
実装サンプル:買い物メモの保存
以下のコードでは、配列に入っている「買うものリスト」を、テキストファイル(Memo.txt)として新規作成・保存しています。
サンプルコード
using System;
using System.IO;
public class Program
{
public static void Main()
{
// 1. 書き込みたいデータ(文字列の配列)を作成
string[] shoppingList = new string[]
{
"牛乳 1パック",
"食パン 6枚切り",
"卵 10個入り",
"洗濯洗剤 詰め替え用"
};
// 保存するファイル名
string filePath = "Memo.txt";
try
{
Console.WriteLine("ファイルを書き出しています...");
// 2. 配列の中身をまとめてファイルに書き込む
// File.WriteAllLines(ファイルパス, 配列)
// ※指定したファイルが既に存在する場合は、上書きされます。
File.WriteAllLines(filePath, shoppingList);
Console.WriteLine("保存が完了しました。");
// (確認用) 保存された内容を読み込んで表示
Console.WriteLine("\n--- Memo.txt の中身 ---");
string content = File.ReadAllText(filePath);
Console.WriteLine(content);
}
catch (Exception ex)
{
Console.WriteLine("書き込み中にエラーが発生しました: " + ex.Message);
}
}
}
実行結果
ファイルを書き出しています...
保存が完了しました。
--- Memo.txt の中身 ---
牛乳 1パック
食パン 6枚切り
卵 10個入り
洗濯洗剤 詰め替え用
解説とメリット
File.WriteAllLines メソッドは、以下の処理を内部で自動的に行います。
- ファイルを新規作成(または上書き)モードで開く。
- 配列の要素を1つずつ書き込み、各行の末尾に改行コードを付ける。
- ファイルを閉じてリソースを解放する。
これにより、ファイルの「閉じ忘れ」によるエラーを防げるほか、コードの記述量が減り、可読性が大幅に向上します。ログのダンプ出力や、単純なリストデータの保存など、様々な場面で活用できる基本テクニックです。
