Stream クラス

2013/12/12

バイト シーケンスのジェネリック ビューを提供します。

Namespace:  System.IO
アセンブリ:  mscorlib (mscorlib.dll 内)

public abstract class Stream : IDisposable

Stream 型で公開されるメンバーは以下のとおりです。

  名前説明
プロテクト メソッドStreamStream クラスの新しいインスタンスを初期化します。
このページのトップへ

  名前説明
パブリック プロパティCanRead派生クラスでオーバーライドされた場合は、現在のストリームが読み取りをサポートするかどうかを示す値を取得します。
パブリック プロパティCanSeek派生クラスでオーバーライドされた場合は、現在のストリームがシークをサポートするかどうかを示す値を取得します。
パブリック プロパティCanTimeout現在のストリームがタイムアウトできるかどうかを判断する値を取得します。
パブリック プロパティCanWrite派生クラスでオーバーライドされた場合は、現在のストリームが書き込みをサポートするかどうかを示す値を取得します。
パブリック プロパティLength派生クラスでオーバーライドされた場合は、ストリームの長さをバイト単位で取得します。
パブリック プロパティPosition派生クラスでオーバーライドされた場合は、現在のストリーム内の位置を取得または設定します。
パブリック プロパティReadTimeoutストリームがタイムアウト前に読み取りを試行する期間を決定する値 (ミリ秒単位) を取得または設定します。
パブリック プロパティWriteTimeoutストリームがタイムアウト前に書き込みを試行する期間を決定する値 (ミリ秒単位) を取得または設定します。
このページのトップへ

  名前説明
パブリック メソッドBeginRead非同期の読み込み動作を開始します。
パブリック メソッドBeginWrite非同期の書き込み操作を開始します。
パブリック メソッドClose現在のストリームを閉じ、現在のストリームに関連付けられているすべてのリソース (ソケット、ファイル ハンドルなど) を解放します。
パブリック メソッドCopyTo(Stream)現在のストリームからすべてのバイトを読み取り、宛先ストリームにそれらを書き込みます。
パブリック メソッドCopyTo(Stream, Int32)指定されたバッファー サイズを使用して、現在のストリームからすべてのバイトを読み取り、コピー先のストリームに書き込みます。
パブリック メソッドCopyToAsync(Stream)現在のストリームからバイトを非同期的に読み取り、別のストリームにそれらを書き込みます。
パブリック メソッドCopyToAsync(Stream, Int32)指定されたバッファー サイズを使用して、現在のストリームからバイトを非同期的に読み取り、別のストリームに書き込みます。
パブリック メソッドCopyToAsync(Stream, Int32, CancellationToken)指定されたバッファー サイズとキャンセル トークンを使用して、現在のストリームからバイトを非同期的に読み取り、別のストリームに書き込みます。
パブリック メソッドDispose()Stream によって使用されているすべてのリソースを解放します。
プロテクト メソッドDispose(Boolean)Stream によって使用されているアンマネージ リソースを解放し、オプションでマネージ リソースも解放します。
パブリック メソッドEndRead保留中の非同期読み取りが完了するまで待機します。
パブリック メソッドEndWrite非同期書き込み操作を終了します。
パブリック メソッドEquals(Object)指定した Object が、現在の Object と等しいかどうかを判断します。 (Object から継承されます。)
プロテクト メソッドFinalizeObject がガベージ コレクションで再利用される前に、Object がリソースを解放して他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。)
パブリック メソッドFlush派生クラスによってオーバーライドされた場合は、ストリームに対応するすべてのバッファーをクリアし、バッファー内のデータを基になるデバイスに書き込みます。
パブリック メソッドFlushAsync()このストリームに対応するすべてのバッファーを非同期的にクリアし、バッファー内のデータを基になるデバイスに書き込みます。
パブリック メソッドFlushAsync(CancellationToken)このストリームに対応するすべてのバッファーを非同期的にクリアし、バッファー内のデータを基になるデバイスに書き込み、取り消し要求を監視します。
パブリック メソッドGetHashCode特定の型のハッシュ関数として機能します。 (Object から継承されます。)
パブリック メソッドGetType現在のインスタンスの Type を取得します。 (Object から継承されます。)
プロテクト メソッドMemberwiseClone現在の Object の簡易コピーを作成します。 (Object から継承されます。)
パブリック メソッドRead派生クラスによってオーバーライドされた場合は、現在のストリームからバイト シーケンスを読み取り、読み取ったバイト数の分だけストリームの位置を進めます。
パブリック メソッドReadAsync(Byte[], Int32, Int32)現在のストリームからバイト シーケンスを非同期的に読み取り、読み取ったバイト数だけストリーム内の位置を進めます。
パブリック メソッドReadAsync(Byte[], Int32, Int32, CancellationToken)現在のストリームからバイト シーケンスを非同期的に読み取り、読み取ったバイト数だけストリーム内の位置を進め、取り消し要求を監視します。
パブリック メソッドReadByteストリームから 1 バイトを読み取り、ストリーム内の位置を 1 バイト進めます。ストリームの末尾の場合は -1 を返します。
パブリック メソッドSeek派生クラスでオーバーライドされた場合は、現在のストリーム内の位置を設定します。
パブリック メソッドSetLength派生クラスでオーバーライドされた場合は、現在のストリームの長さを設定します。
パブリック メソッドToString現在のオブジェクトを表す文字列を返します。 (Object から継承されます。)
パブリック メソッドWrite派生クラスによってオーバーライドされた場合は、現在のストリームにバイト シーケンスを書き込み、書き込んだバイト数の分だけストリームの現在位置を進めます。
パブリック メソッドWriteAsync(Byte[], Int32, Int32)現在のストリームにバイト シーケンスを非同期的に書き込み、書き込んだバイト数だけストリーム内の現在位置を進めます。
パブリック メソッドWriteAsync(Byte[], Int32, Int32, CancellationToken)現在のストリームにバイト シーケンスを非同期的に書き込み、書き込んだバイト数だけストリーム内の現在位置を進め、取り消し要求を監視します。
パブリック メソッドWriteByteストリームの現在位置にバイトを書き込み、ストリームの位置を 1 バイトだけ進めます。
このページのトップへ

  名前説明
パブリック拡張メソッドAsInputStreamWindows ストア アプリ向け .NET のマネージ ストリームを Windows ランタイム の入力ストリームに変換します。 (WindowsRuntimeStreamExtensions によって定義されています。)
パブリック拡張メソッドAsOutputStreamWindows ストア アプリ向け .NET のマネージ ストリームを Windows ランタイム の出力ストリームに変換します。 (WindowsRuntimeStreamExtensions によって定義されています。)
このページのトップへ

  名前説明
パブリック フィールド静的メンバーNullバッキング ストアを持たない Stream
このページのトップへ

ストリームには次の 3 つの基本的な操作が含まれます。

  1. ストリームからの読み込み。この読み取りとは、ストリームからバイト配列などのデータ構造体にデータを転送することです。

  2. ストリームへの書き込み。書き込みは、データ構造体からストリームへのデータ転送です。

  3. ストリームは、シークをサポートします。シークとは、ストリーム内の現在位置を照会したり、変更したりすることです。シーク機能は、ストリームが持つバッキング ストアの種類によって異なります。たとえば、ネットワークのストリームは、現在位置という統一された概念を持たないため、通常はシークをサポートしません。

Stream は、すべてのストリームの抽象基本クラスです。ストリームは、ファイル、入出力デバイス、プロセス間通信パイプ、TCP/IP ソケットなど、バイト シーケンスの抽象化です。Stream クラスとその派生クラスは、これらのさまざまな種類の入出力のジェネリック ビューを提供します。これにより、プログラマはオペレーティング システムや基になるデバイスに固有のディテールを分離します。

基になるデータ ソースまたはリポジトリによっては、ストリームがサポートできる機能が上記の一部に限られる場合があります。アプリケーションで CanRead プロパティ、CanWrite プロパティ、および CanSeek プロパティを使用することにより、ストリームの機能を問い合わせることができます。

Read メソッドおよび Write メソッドはさまざまな形式でデータの読み取りと書き込みをします。シークをサポートするストリームの場合は、Seek メソッドや SetLength メソッド、および Position プロパティや Length プロパティを使用して、ストリームの現在位置および長さを問い合わせ、変更します。

ストリームの実装によっては、パフォーマンスの向上のために、基になるデータをローカルでバッファリングする場合があります。このようなストリームでは、Flush メソッドを使用して内部バッファーをクリアし、すべてのデータが基になるデータ ソースやリポジトリに確実に書き込まれることを保証できます。

StreamClose を呼び出すと、基本的に Flush を呼び出してバッファー内のデータがフラッシュされます。Close は、ファイル ハンドル、ネットワーク接続、内部バッファリングに使用されるメモリなどのオペレーティング システム リソースも解放します。

バッキング ストア (ビット バケット) なしのストリームが必要な場合は、Null を使用します。

実装時の注意

Stream の派生クラスを実装するときは、Read メソッドおよび Write メソッドの実装を提供する必要があります。非同期メソッド BeginReadEndReadBeginWrite、および EndWrite は、同期メソッド Read および Write を使用して実装します。同様に、独自の Read および Write の実装は、非同期メソッドと共に正常に動作します。ReadByte および WriteByte の既定の実装は、新しい単一要素のバイト配列を作成した後で、独自の Read および Write を呼び出します。Stream から派生させるとき、内部バイト バッファーを使用する場合は、内部バッファーにアクセスするようにメソッドをオーバーライドすることを強くお勧めします。これにより、パフォーマンスが大幅に向上します。CanReadCanSeekCanWriteFlushLengthPositionSeek、および SetLength も実装する必要があります。

Close メソッドをオーバーライドしないでください。代わりに、Dispose メソッドにすべての Stream クリーンアップ ロジックを組み込みます。

TopicLocation
方法 : ファイルにテキストを書き込む.NET Framework: プログラミングの基礎
方法 : ファイルからテキストを読み取る.NET Framework: プログラミングの基礎
方法 : ファイルにテキストを書き込む.NET Framework : プログラミングの基礎
方法 : ファイルからテキストを読み取る.NET Framework : プログラミングの基礎

Windows Phone OS

サポート: 8.0, 7.1, 7.0

この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

表示:
© 2014 Microsoft