English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C# ストリーム(Stream)

C#には以下の標準IO(入力/出力)クラスであり、異なるソース(例えばファイル、メモリ、ネットワーク、分離ストレージなど)から読み取ることができます/書き込み。

ストリーム(Stream): System.IO.Stream これは抽象クラスであり、バイト(読み取り、書き込みなど)をソースに伝送する標準的なメソッドを提供します。パッケージクラスのようにバイトを伝送します。特定のソースから読み取る必要があります。/バイトの書き込みを行うクラスは、Streamクラスを実装する必要があります。

以下のクラスはStreamクラスを継承して、特定のソースから読み取る/バイトの書き込み機能:

FileStream:物理ファイルからバイトを読み取ったり、物理ファイルにバイトを書き込んだりします。それは.txt、.exe、.jpgの他に、どのようなファイルでもできます。FileStreamはStreamクラスを派生しています。

MemoryStream: MemoryStreamは、メモリに保存されているバイトを読み取ったり書き込んだりします。

BufferedStream: BufferedStreamは、特定のI/Oを高速化するために他のStreamからバイトを読み取ったり書き込んだりします。 / O操作のパフォーマンス

NetworkStream: NetworkStreamは、ネットワークソケットからバイトを読み取ったり書き込んだりします。

PipeStream: PipeStreamは、異なるプロセスからのバイトを読み取ったり書き込んだりします。

CryptoStream: CryptoStreamは、データストリームを暗号変換にリンクするために使用されます。

以下の図は、ストリームクラスの階層構造を示しています:

ストリームクラスの階層構造

ストリームの読み取りと書き込み

StreamReader:StreamReaderは、エンコーディング値を使用してバイトを文字に変換してStreamから文字を読み取るためのヘルパークラスです。これは、FileStreamやMemoryStreamなどの異なるストリームから文字列(文字)を読み取るために使用できます。

StreamWriter:StreamWriterは、文字列をバイトに変換してStreamに書き込むためのヘルパークラスです。これは、FileStreamやMemoryStreamなどの異なるストリームに文字列を書き込むために使用できます。

BinaryReader:BinaryReaderは、バイトから原始データ型を読み取るためのヘルパークラスです。

BinaryWriter:BinaryWriterは、原始データ型を二進数で書き込みます。

ストリームIO

上の図は、FileStreamが物理ファイルからバイトを読み取り、StreamReaderがこれらのバイトを文字列に変換して文字列を読み取ることを示しています。同様に、StreamWriterは文字列を取得し、バイトに変換してFileStreamに書き込み、FileStreamがバイトを物理ファイルに書き込みます。したがって、FileStreamはバイトを処理し、StreamReaderとStreamWriterは文字列を処理します。

 覚えておくべきポイント

  1. Streamは、異なるソースからバイトを転送する抽象クラスです。これは、バイトを読み取る他のすべてのクラスの基底クラスです。/異なるソースに書き込む。

  2. FileStreamクラスは、物理ファイルのバイト読み書き機能を提供します。

  3. 読み書きクラスは、ストリームクラス(FileStream、MemoryStreamなど)からバイトを読み取り、適切なエンコードに変換する機能を提供します。

  4. StreamWriterは、文字列をバイトに変換してFileStreamに文字列を書き込むためのヘルパーメソッドを提供します。

次の部分で、StreamReaderがバイトを文字列に変換してFileStreamから文字列を読み取る方法について説明します。/ファイルシステムに書き込む。