#12 C#で学ぶファイル読み書きの基本

C#のファイル操作は、Fileという分かりやすい名前のクラスを使って、簡潔に書けるのが特徴です。この記事では、C#におけるファイル操作の基本を解説します。

ファイルを読み込む

string content = File.ReadAllText("data.txt");
Console.WriteLine(content);

ファイルに書き込む

File.WriteAllText("data.txt", "こんにちは");

既存の内容に追記したい場合はFile.AppendAllText("data.txt", "追記内容")を使います。

1行ずつ読み込む

string[] lines = File.ReadAllLines("data.txt");
foreach (string line in lines) {
    Console.WriteLine(line);
}

大きなファイルを扱う場合は、全体を配列としてメモリに読み込むReadAllLinesより、File.ReadLinesを使うと1行ずつ順に処理でき、メモリの負荷を抑えられます。

ファイルが存在するか確認する

if (File.Exists("data.txt")) {
    string content = File.ReadAllText("data.txt");
}

例外の扱い

ファイルが存在しない場合など、ファイル操作は例外を投げることがあります。以前の記事で触れたtry・catchと組み合わせて対処します。

try {
    string content = File.ReadAllText("data.txt");
} catch (FileNotFoundException e) {
    Console.WriteLine("ファイルが見つかりません");
}

usingステートメントでストリームを扱う

大きなファイルをより細かく制御したい場合は、StreamReader・StreamWriterをusingと組み合わせて使います。

using (var writer = new StreamWriter("data.txt")) {
    writer.WriteLine("こんにちは");
}
// このブロックを抜けると自動的にwriterが閉じられる

C#ならではの注意点

Fileクラスのメソッド名は、ReadAllText・WriteAllTextのように、何をする機能かが名前からそのまま推測できるよう、分かりやすく設計されています。他の言語で似た機能を探す際も、この命名の感覚を参考にすると見つけやすくなります。

まとめ

C#のファイル操作はFileクラスが基本で、分かりやすいメソッド名が特徴です。Existsでの事前確認や、例外の可能性を考慮したtry・catchとの組み合わせも覚えておきましょう。


本ページはプロモーションを含みます。

参考書籍(PR)

C#をもっと学びたい方には「確かな力が身につくC#「超」入門 第2版」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本