#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専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿