名前空間 System.IO
自己紹介
こんにちは、人間たち。私は弓の神であり、狩猟と戦を司る者、「File」クラスと申します。私の役割は遠くの的を正確に射抜くように、ファイル操作を正確にこなします。では使い方を解説していきましょう。狩りと同じく、正確さが鍵になりますよ。
基本機能
File
クラスは、ファイルの作成、読み書き、削除、コピーなど、さまざまな操作を簡潔に行える便利なクラスです。まずは基本的なファイル作成と読み取りの例を見てみましょう。
// Fileクラスを使った基本操作
using System;
using System.IO;
class Program
{
static void Main()
{
string filePath = "example.txt";
// ファイルを作成して書き込み
File.WriteAllText(filePath, "これはサンプルテキストです。");
// ファイルを読み取り
string content = File.ReadAllText(filePath);
Console.WriteLine($"ファイル内容: {content}"); // 出力: ファイル内容: これはサンプルテキストです。
}
}
この例では、WriteAllText
とReadAllText
を使ってファイルの書き込みと読み取りを行っています。File
クラスを使うことで、これらの操作を簡潔に実現できます。
注意点
ファイル操作ではリソースの解放に注意が必要です。File
クラスは内部でリソースを管理していますが、FileStream
やStreamWriter
を直接使用する場合はusing
ブロックを活用してリソースを明示的に解放する必要があります。以下はClose
を忘れた場合の例です。
// Closeを忘れた場合の例
using System;
using System.IO;
class Program
{
static void Main()
{
string filePath = "example.txt";
FileStream stream = new FileStream(filePath, FileMode.Create);
StreamWriter writer = new StreamWriter(stream);
writer.WriteLine("リソース解放を忘れた例です。");
// writer.Close() を忘れると、ファイルがロックされたままになる可能性があります。
try
{
File.Delete(filePath);
}
catch (IOException ex)
{
Console.WriteLine($"エラー: {ex.Message}");
}
}
}
using
を使うことで、リソースが自動的に解放されます。忘れないように注意しましょう。
FileStreamとの違い
File
クラスは静的メソッドを提供するシンプルなインターフェースで、短い操作に向いています。一方、FileStream
はストリームとして動作するため、ファイルを細かく制御する際に適しています。以下に違いを示す例を挙げます。
// FileStreamを使ったファイル書き込み
using System;
using System.IO;
class Program
{
static void Main()
{
string filePath = "filestream_example.txt";
using (FileStream fs = new FileStream(filePath, FileMode.Create))
using (StreamWriter writer = new StreamWriter(fs))
{
writer.WriteLine("FileStreamを使った書き込み例です。");
}
string content = File.ReadAllText(filePath);
Console.WriteLine($"ファイル内容: {content}");
}
}
このように、File
クラスとFileStream
の使い分けが重要です。
具体的な使い方
以下はFile
クラスを使った存在確認、書き込み、コピーの例です。
// Fileクラスを使ったさまざまな操作
using System;
using System.IO;
class Program
{
static void Main()
{
string filePath = "example.txt";
string copyPath = "example_copy.txt";
// 存在確認
if (File.Exists(filePath))
{
Console.WriteLine($"{filePath} は存在します。");
}
else
{
// ファイルがなければ作成
File.WriteAllText(filePath, "ファイルの内容を書き込みます。");
}
// ファイルをコピー
File.Copy(filePath, copyPath, true);
Console.WriteLine($"{filePath} を {copyPath} にコピーしました。");
}
}
これで、File
クラスを使った基本的な操作がマスターできます。
解説
上記の例では、File
クラスの多様な機能を活用しました。Exists
でファイルの存在を確認し、WriteAllText
で内容を書き込み、Copy
でファイルをコピーしています。File
クラスは簡潔で扱いやすい一方、細かい制御が必要な場合はFileStream
を選ぶと良いでしょう。用途に応じて使い分けることで、効率的なファイル操作が可能です。
コメントを投稿
別ページに移動します