C#のストリームとバイトストリームとは?基本概念とSystem.IOクラス一覧
C#におけるファイルとストリームの基本
ファイルとは、特定の名前とディレクトリパスを持つ、ディスク上に保存されたデータの集合のことです。C#では、このファイルを読み取りまたは書き込みのために開くと、そのファイルは「ストリーム」として扱われます。ストリームを利用することで、プログラムはファイルの内容を連続的なデータの流れとして読み書きできるようになります。
ストリームの主な種類
C#のストリームは、大きく以下の2種類に分類されます。
- バイトストリーム(Byte Streams):Stream、FileStream、MemoryStream、BufferedStream などのクラスが含まれます。
- 文字ストリーム(Character Streams):TextReader/TextWriter、StreamReader、StreamWriter など、文字単位でデータを扱うクラスが含まれます。
バイトストリームは、ストリーム内のデータを「バイト」単位で処理するクラス群です。画像やバイナリファイルなど、任意の形式のデータをそのまま扱いたい場合に適しています。
Streamクラスの主なプロパティ
Streamクラスは、すべてのバイトストリームクラスの基底クラス(抽象クラス)であり、派生クラス共通の機能を提供します。代表的なプロパティは次のとおりです。
- CanRead:現在のストリームが読み取りをサポートしているかどうかを示します。
- CanWrite:現在のストリームが書き込みをサポートしているかどうかを示します。
- Length:ストリームの長さ(バイト数)を取得します。
これらのプロパティを確認することで、ストリームに対して実際に読み書き操作が可能かどうかを実行前に判断できます。
System.IO名前空間について
System.IO名前空間には、ファイルの作成・削除、ファイルからの読み取りやファイルへの書き込み、ファイルを閉じる処理など、ファイルに関わるさまざまな操作を行うためのクラスが多数用意されています。これらのクラスを使い分けることで、テキストファイルからバイナリデータまで幅広い入出力処理を効率的に実装できます。
System.IOの主なI/Oクラス一覧
以下の表に、System.IO名前空間でよく使われる入出力関連クラスとその役割をまとめます。
| No. | 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 文字列バッファへ書き込むために使用されます。 |
まとめ
C#のファイル入出力は、ストリームという概念を中心に構成されています。バイナリデータを扱う場合はFileStreamやBinaryReader/BinaryWriter、テキストデータを扱う場合はStreamReader/StreamWriterといったように、目的に応じて適切なクラスを選択することが重要です。また、ストリームを使用した後は必ずCloseメソッドやusingステートメントでリソースを解放することを心がけましょう。
-
VLCで音楽や動画をストリーミング配信する方法を徹底解説
VLCは無料で利用できるオープンソースのメディアプレイヤーで、ほぼすべてのメディア形式ファイルを再生できることで広く知られています。音声や動画の再生だけでなく、Webカメラやデスクトップ画面、各種ストリームの録画など、多彩な機能を備えている点も魅力です。しかし意外と知られていないのが、VLCには音楽や動画をストリーミング配信する機能もあるという点です。この記事では、VLCメディアプレイヤーを使って映画や音楽を別のデバイスへストリーミング配信する具体的な手順を、初心者にもわかりやすく解説します。VLCで音楽・動画をストリーミング配信する基本の流れVLCでのストリーミングは、「メディア」メニューに
-
HP Stream 7、Windows 10、アクセシビリティと将来
覚えていると思いますが、数年前、私は Windows 8.1 で構成された HP Stream 7 Signature Edition タブレットを衝動的に購入し、しばらく使用して、そのタッチの性質とそうでないことに折り合いをつけようとしました。タッチ操作システム。この経験はやや物足りないものでした。 次に、デバイスを Windows 10 にアップグレードしてから、ホビットの物語のように、シャイアにアップグレードしてから戻しました。これは、Microsoft の主力オペレーティング システムの最新バージョンがうまく動作していなかったためです。その後、このタブレットで数回遊んで、Window