C#のI/Oクラスとは?System.IO名前空間の主要クラス15選をわかりやすく解説
C#では、System.IO名前空間に属するさまざまなクラスを使うことで、ファイルやディレクトリに対する多彩な操作を実現できます。具体的には、ファイルの作成・削除、データの読み書き、ファイルのクローズなど、入出力処理に必要な機能がひと通り揃っています。
System.IO名前空間の主なI/Oクラス一覧
以下の表に、C#でよく使われる代表的なI/Oクラスとその役割をまとめました。
| 番号 | I/Oクラスと説明 |
|---|---|
| 1 | BinaryReader バイナリストリームからプリミティブ型のデータを読み取ります。 |
| 2 | BinaryWriter プリミティブ型のデータをバイナリ形式で書き込みます。 |
| 3 | BufferedStream バイトストリームのための一時的なバッファ(保管領域)を提供します。 |
| 4 | Directory ディレクトリ構造の作成・移動・削除などの操作を支援します。 |
| 5 | DirectoryInfo ディレクトリに対する各種操作を行うために使用します。 |
| 6 | DriveInfo ドライブに関する情報(容量、種類など)を取得できます。 |
| 7 | File ファイルの作成・コピー・削除などの操作を支援します。 |
| 8 | FileInfo ファイルに対する各種操作を行うために使用します。 |
| 9 | FileStream ファイル内の任意の位置に対して読み書きを行えます。 |
| 10 | MemoryStream メモリ上に格納されたストリームデータへのランダムアクセスに使用します。 |
| 11 | Path ファイルパスやディレクトリパスの情報に対する操作を行います。 |
| 12 | StreamReader バイトストリームから文字を読み取るために使用します。 |
| 13 | StreamWriter ストリームへ文字を書き込むために使用します。 |
| 14 | StringReader 文字列バッファから読み取りを行います。 |
| 15 | StringWriter 文字列バッファへの書き込みを行います。 |
静的クラスとインスタンスクラスの使い分け
I/Oクラスの中には、似た役割を持つペアが存在します。たとえばFileとFileInfo、DirectoryとDirectoryInfoです。FileクラスやDirectoryクラスは静的(static)メソッドのみを提供するため、単発の操作に向いています。一方、FileInfoクラスやDirectoryInfoクラスはインスタンスを生成して使うため、同じファイルやフォルダに対して繰り返し操作を行う場合に効率的です。
用途に応じてこれらのクラスを使い分けることで、C#でのファイル入出力処理をより柔軟かつ効率的に実装できます。
-
Pythonの文字クラス操作とは?正規表現での積集合・差集合・和集合を解説
文字クラス操作とは 一部の正規表現エンジンでは、文字クラスの中で高度な演算を行うことができます。これにより、単純な文字の並びや範囲指定にとどまらず、より柔軟なパターンマッチングが可能になります。主な操作は以下の3つです。 差集合(減算):あるクラスには属するが、別のクラスには属さない文字にマッチさせる 積集合(交差):複数のクラスのどちらにも属する文字にマッチさせる 和集合(結合):複数のクラスのいずれかに属する文字にマッチさせる 積集合(AND演算) AND演算子 && を使うと、複数のクラスの積集合を指定できます。[…&&[…]] という形式で記述し、
-
Python正規表現の文字クラス(文字セット)とは?基本の使い方を解説
文字クラスとは「文字クラス」または「文字セット」とは、角括弧 [ ] で囲まれた文字の集合のことです。正規表現エンジンは、文字クラス内に含まれる複数の文字のうち、いずれか1文字にマッチします。マッチさせたい文字を角括弧の中に記述します。たとえば、母音のいずれかにマッチさせたい場合は、[aeiou] という文字セットを使用します。文字クラスがマッチするのは常に「1文字」だけである点に注意してください。また、文字クラス内の文字の並び順は結果に影響しません。[aeiou] と [uoiea] はまったく同じ意味になります。文字クラス内でハイフン(-)を使うと、文字の範囲を指定できます。たとえば [0