C# I/O 流 : Stream

Stream すべてのストリームの抽象基本クラス。

データストリーム (Stream) は、シリアル伝送データを抽象的に表現したもので、ソースと宛先を持つ抽象的なデータ入出力であり、両者の間の接続がストリーム オブジェクトです。


ストリームは、データのやり取りのパイプです。

読み取りとは、ストリーム (パイプライン) からデータ構造にデータを転送することです。
書き込みとは、データ構造からストリーム (パイプライン) にデータを転送することです。


特定のプロパティとメソッドは、Stream のサブクラスに記述されます。

内容は以下から抜粋: https://learn.microsoft.com/zh-cn/dotnet/api/system.io.stream?view=net-7.0

1. フィールド

Null     
バッキング ストアのない Stream。

2. プロパティ

派生クラスでオーバーライド     
されると、現在のストリーム内の位置を取得または設定します。

派生クラスでオーバーライドさ     
れると、ストリームの長さをバイト単位で取得します。

CanWrite     
派生クラスでオーバーライドされると、現在のストリームが書き込み機能をサポートしているかどうかを示す値を取得します。

CanTimeout は、     
現在のストリームがタイムアウトできるかどうかを決定する値を取得します。

CanSeek     
派生クラスでオーバーライドされると、現在のストリームがシーク機能をサポートしているかどうかを示す値を取得します。

CanRead     
派生クラスでオーバーライドされると、現在のストリームが読み取りをサポートしているかどうかを示す値を取得します。

ReadTimeout ストリーム     
がタイムアウトになるまでに読み取りを試行する時間を決定する値 (ミリ秒単位) を取得または設定します。

WriteTimeout ストリームが     
タイムアウトになるまでに書き込みを試行する時間を決定する値 (ミリ秒単位) を取得または設定します。

3.方法

BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) は、     
非同期読み取り操作を開始します。(代わりに ReadAsync(Byte[], Int32, Int32) の使用を検討してください。)

BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) は、     
非同期書き込み操作を開始します。(代わりに WriteAsync(Byte[], Int32, Int32) の使用を検討してください。)

Close()     
は、現在のストリームを閉じ、それに関連付けられているすべてのリソース (ソケットやファイル ハンドルなど) を解放します。このメソッドを直接呼び出さないでください。ただし、ストリームが適切に解放されていることを確認してください。

CopyTo(Stream) は、     
現在のストリームからバイトを読み取り、別のストリームに書き込みます。

CopyTo(Stream, Int32) は、     
指定されたバッファー サイズを使用して、現在のストリームからバイトを読み取り、別のストリームに書き込みます。

CopyToAsync(Stream) は、     
現在のストリームからバイトを非同期的に読み取り、別のストリームに書き込みます。

CopyToAsync(Stream, CancellationToken) は、     
現在のストリームからバイトを非同期的に読み取り、指定されたキャンセル トークンを使用して別のストリームに書き込みます。

CopyToAsync(Stream, Int32) は、     
指定されたバッファー サイズを使用して、現在のストリームからバイトを非同期的に読み取り、別のストリームに書き込みます。

CopyToAsync(Stream, Int32, CancellationToken) は、     
指定されたバッファー サイズとキャンセル トークンを使用して、現在のストリームからバイトを非同期的に読み取り、別のストリームに書き込みます。

Dispose() は、     
ストリームによって使用されるすべてのリソースを解放します。

EndRead(IAsyncResult) は、保留     
中の非同期読み取りが完了するまで待機します。(代わりに ReadAsync(Byte[], Int32, Int32) の使用を検討してください。)

EndWrite(IAsyncResult) は、     
非同期書き込み操作を終了します。(代わりに WriteAsync(Byte[], Int32, Int32) の使用を検討してください。)

Flush() を     
派生クラスでオーバーライドすると、このストリームのすべてのバッファーがクリアされ、バッファー内のすべてのデータが基になるデバイスに書き込まれます。

FlushAsync() は、     
このストリームのすべてのバッファーを非同期的にフラッシュし、バッファー内のすべてのデータを基になるデバイスに書き込みます。

FlushAsync(CancellationToken) は、     
このストリームのすべてのバッファーを非同期的にフラッシュし、バッファー内のすべてのデータを基になるデバイスに書き込み、キャンセル要求を監視します。

Read(Byte[], Int32, Int32)     
派生クラスでオーバーライドされると、現在のストリームからバイト シーケンスを読み取り、読み取ったバイト数だけこのストリーム内の位置を進めます。

ReadAsync(Byte[], Int32, Int32) は、     
現在のストリームからバイト シーケンスを非同期的に読み取り、読み取ったバイト数だけストリーム内の位置を進めます。

ReadAsync(Byte[], Int32, Int32, CancellationToken) は、     
現在のストリームからバイト シーケンスを非同期的に読み取り、読み取ったバイト数だけストリーム内の位置を進め、キャンセル要求を監視します。

ReadByte()     
は、ストリームから 1 バイトを読み取り、ストリーム内の位置を 1 バイト進めます。ストリームの末尾に達している場合は、-1 を返します。

Seek(Int64, SeekOrigin)     
派生クラスでオーバーライドされると、現在のストリーム内の位置を設定します。

SetLength(Int64)     
派生クラスでオーバーライドされると、現在のストリームの長さを設定します。

Write(Byte[], Int32, Int32)     
派生クラスでオーバーライドされると、現在のストリームにバイト シーケンスを書き込み、書き込まれたバイト数だけこのストリーム内の現在位置を進めます。

WriteAsync(Byte[], Int32, Int32) は、     
バイト シーケンスを現在のストリームに非同期的に書き込み、書き込まれたバイト数だけストリームの現在位置を進めます。

WriteAsync(Byte[], Int32, Int32, CancellationToken) は、     
バイト シーケンスを現在のストリームに非同期的に書き込み、書き込まれたバイト数だけそのストリーム内の現在位置を進め、キャンセル要求を監視します。

WriteByte(Byte) は     
、ストリーム内の現在の位置にバイトを書き込み、ストリーム内の位置を 1 バイト進めます。

Dispose(Boolean)     
ストリームによって占有されている管理されていないリソースを解放し、追加で管理されているリソースを解放する場合があります。

おすすめ

転載: blog.csdn.net/SmillCool/article/details/127782654