この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

Stream クラス

 

公開日: 2016年11月

バイト シーケンスのジェネリック ビューを提供します。 これは抽象クラスです。

この型の .NET Framework ソース コードを参照するを参照してください。、 Reference Sourceです。

名前空間:   System.IO
アセンブリ:  mscorlib (mscorlib.dll 内)


[SerializableAttribute]
[ComVisibleAttribute(true)]
public abstract class Stream : MarshalByRefObject, IDisposable

名前説明
System_CAPS_protmethodStream()

Stream クラスの新しいインスタンスを初期化します。

名前説明
System_CAPS_pubpropertyCanRead

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

System_CAPS_pubpropertyCanSeek

派生クラスでオーバーライドされた場合は、現在のストリームがシークをサポートするかどうかを示す値を取得します。

System_CAPS_pubpropertyCanTimeout

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

System_CAPS_pubpropertyCanWrite

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

System_CAPS_pubpropertyLength

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

System_CAPS_pubpropertyPosition

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

System_CAPS_pubpropertyReadTimeout

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

System_CAPS_pubpropertyWriteTimeout

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

名前説明
System_CAPS_pubmethodBeginRead(Byte[], Int32, Int32, AsyncCallback, Object)

非同期の読み込み動作を開始します。 (代わりに ReadAsync を使用してください。「解説」を参照してください。)

System_CAPS_pubmethodBeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

非同期の書き込み操作を開始します。 (代わりに WriteAsync を使用してください。「解説」を参照してください。)

System_CAPS_pubmethodClose()

現在のストリームを閉じ、現在のストリームに関連付けられているすべてのリソース (ソケット、ファイル ハンドルなど) を解放します。 このメソッドを呼び出す代わりに、ストリームが適切に破棄されていることを確認します。

System_CAPS_pubmethodCopyTo(Stream)

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

System_CAPS_pubmethodCopyTo(Stream, Int32)

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

System_CAPS_pubmethodCopyToAsync(Stream)

現在のストリームからすべてのバイトを非同期に読み取り、別のストリームに書き込みます。

System_CAPS_pubmethodCopyToAsync(Stream, Int32)

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

System_CAPS_pubmethodCopyToAsync(Stream, Int32, CancellationToken)

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

System_CAPS_pubmethodCreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要なすべての関連情報を格納しているオブジェクトを作成します。(MarshalByRefObject から継承されます。)

System_CAPS_protmethodCreateWaitHandle()

互換性のために残されています。 WaitHandle オブジェクトを割り当てます。

System_CAPS_pubmethodDispose()

Stream によって使用されているすべてのリソースを解放します。

System_CAPS_protmethodDispose(Boolean)

Stream によって使用されているアンマネージ リソースを解放し、オプションでマネージ リソースも解放します。

System_CAPS_pubmethodEndRead(IAsyncResult)

保留中の非同期読み取りが完了するまで待機します。 (代わりに ReadAsync を使用してください。「解説」を参照してください。)

System_CAPS_pubmethodEndWrite(IAsyncResult)

非同期書き込み操作を終了します。 (代わりに WriteAsync を使用してください。「解説」を参照してください。)

System_CAPS_pubmethodEquals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。(Object から継承されます。)

System_CAPS_protmethodFinalize()

オブジェクトがガベージ コレクションにより収集される前に、そのオブジェクトがリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。)

System_CAPS_pubmethodFlush()

派生クラスによってオーバーライドされた場合は、ストリームに対応するすべてのバッファーをクリアし、バッファー内のデータを基になるデバイスに書き込みます。

System_CAPS_pubmethodFlushAsync()

ストリームに対応するすべてのバッファーを非同期にクリアし、バッファー内のデータを基になるデバイスに書き込みます。

System_CAPS_pubmethodFlushAsync(CancellationToken)

ストリームに対応するすべてのバッファーを非同期にクリアし、バッファー内のデータを基になるデバイスに書き込み、キャンセル要求を監視します。

System_CAPS_pubmethodGetHashCode()

既定のハッシュ関数として機能します。(Object から継承されます。)

System_CAPS_pubmethodGetLifetimeService()

このインスタンスの有効期間ポリシーを制御する現在の有効期間サービス オブジェクトを取得します。(MarshalByRefObject から継承されます。)

System_CAPS_pubmethodGetType()

現在のインスタンスの Type を取得します。(Object から継承されます。)

System_CAPS_pubmethodInitializeLifetimeService()

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。(MarshalByRefObject から継承されます。)

System_CAPS_protmethodMemberwiseClone()

現在の Object の簡易コピーを作成します。(Object から継承されます。)

System_CAPS_protmethodMemberwiseClone(Boolean)

現在の簡易コピーを作成MarshalByRefObjectオブジェクト。(MarshalByRefObject から継承されます。)

System_CAPS_protmethodObjectInvariant()

互換性のために残されています。 この API は 製品 インフラストラクチャをサポートします。コードから直接使用するためのものではありません。 Contract のサポートを提供します。

System_CAPS_pubmethodRead(Byte[], Int32, Int32)

派生クラスによってオーバーライドされた場合は、現在のストリームからバイト シーケンスを読み取り、読み取ったバイト数の分だけストリームの位置を進めます。

System_CAPS_pubmethodReadAsync(Byte[], Int32, Int32)

現在のストリームからバイト シーケンスを非同期に読み取り、読み取ったバイト数だけストリーム内の位置を進めます。

System_CAPS_pubmethodReadAsync(Byte[], Int32, Int32, CancellationToken)

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

System_CAPS_pubmethodReadByte()

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

System_CAPS_pubmethodSeek(Int64, SeekOrigin)

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

System_CAPS_pubmethodSetLength(Int64)

派生クラスでオーバーライドされた場合は、現在のストリームの長さを設定します。

System_CAPS_pubmethodSystem_CAPS_staticSynchronized(Stream)

指定した Stream オブジェクトをラップするスレッド セーフな (同期された) ラッパーを作成します。

System_CAPS_pubmethodToString()

現在のオブジェクトを表す文字列を返します。 (Object から継承されます。)

System_CAPS_pubmethodWrite(Byte[], Int32, Int32)

派生クラスによってオーバーライドされた場合は、現在のストリームにバイト シーケンスを書き込み、書き込んだバイト数の分だけストリームの現在位置を進めます。

System_CAPS_pubmethodWriteAsync(Byte[], Int32, Int32)

現在のストリームにバイト シーケンスを非同期に書き込み、書き込んだバイト数だけストリーム内の現在位置を進めます。

System_CAPS_pubmethodWriteAsync(Byte[], Int32, Int32, CancellationToken)

現在のストリームにバイト シーケンスを非同期に書き込み、書き込んだバイト数だけストリーム内の現在位置を進め、キャンセル要求を監視します。

System_CAPS_pubmethodWriteByte(Byte)

ストリームの現在位置にバイトを書き込み、ストリームの位置を 1 バイトだけ進めます。

名前説明
System_CAPS_pubfieldSystem_CAPS_staticNull

バッキング ストアを持たない Stream

System_CAPS_noteメモ

この型の .NET Framework ソース コードを表示するを参照してください。、 Reference Sourceです。 ソース コードをオンラインで参照するか、リファレンスをダウンロードしてオフラインで表示するか、デバッグ中にソース (パッチや更新を含む) をステップ実行することができます。 instructionsを参照してください。

Streamすべてのストリームの抽象基本クラスです。 ストリームとは、ファイル、入出力デバイス、プロセス間通信のパイプ、または TCP/IP ソケットなどのバイト シーケンスを抽象化したものです。 Streamクラスとその派生クラスのさまざまな種類の入力と出力、汎用的なビューを提供し、プログラマ、オペレーティング システムと基になるデバイスの特定の詳細から分離します。

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

  • ストリームから取得できます。 読み取りとは、バイト配列などのデータ構造にデータをストリームからの転送です。

  • ストリームに記述することができます。 書き込みは、データ構造からストリームにデータの転送です。

  • ストリームはシークをサポートできます。 シークは、クエリを実行して、ストリーム内の現在位置の変更を指します。 シーク機能は、ストリームには、バッキング ストアの種類によって異なります。 たとえば、ネットワーク ストリームいない、現在の位置の統一された概念持ちしたがって通常はシークをサポートします。

他のよく使用されるストリームから継承するStreamFileStream、およびMemoryStreamです。

基になるデータ ソースまたはリポジトリによってこれらの機能の一部のみストリームがサポートする可能性があります。 使用してそのような機能のストリームを照会することができます、 CanReadCanWrite、およびCanSeekのプロパティ、Streamクラスです。

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

この型は、IDisposableインターフェイスです。 型を使用してが完了したらを直接または間接的にその破棄する必要があります。 型を直接に破棄するには、try/catch ブロックで Dispose メソッドを呼び出します。 間接的に破棄する場合は、 using (C#) または Using (Visual Basic) 言語構成要素を使用します。 詳細については、IDisposable インターフェイスに関するトピックの "IDisposable を実装するオブジェクトを使用する" セクションを参照してください 。

破棄をStreamオブジェクトがバッファー内のデータをフラッシュし、本質的に呼び出してはFlushメソッド。 Disposeファイル ハンドル、ネットワーク接続、または、内部バッファリングの使用メモリなどのオペレーティング システム リソースを解放します。 BufferedStreamクラスは、折り返しの読み取りを改善し、書き込みのパフォーマンスのために別のストリームのバッファー済みストリームの機能を提供します。

以降で、 .NET Framework 4.5、Streamクラスには、非同期操作を簡素化する非同期メソッドが含まれています。 非同期のメソッドを含むAsync、名前になどReadAsyncWriteAsyncCopyToAsync、およびFlushAsyncです。 これらのメソッドを使用すると、メイン スレッドをブロックすることがなくリソースを消費する I/O 操作を実行できます。 このパフォーマンスに関する考慮事項は、時間のかかるストリーム操作によって UI スレッドがブロックされ、アプリが動作していないと見なされる可能性がある Windows 8.x ストア アプリまたはデスクトップ アプリで特に重要です。 非同期メソッドと組み合わせてで使用される、asyncawaitVisual Basic および c# のキーワードです。

使用する場合、Windows 8.x ストアアプリ、 Stream 2 つの拡張メソッドが含まれています:AsInputStreamAsOutputStreamです。 これらのメソッドの変換、Streamストリームにオブジェクト、Windows ランタイムです。 ストリームを変換することも、Windows ランタイムをStreamオブジェクトを使用して、AsStreamForReadAsStreamForWriteメソッドです。 詳細については、「方法: .NET Framework ストリームと Windows ランタイム ストリームの間で変換を行う」を参照してください。

ストリームの実装によっては、パフォーマンスを向上させるために基になるデータのローカル バッファー処理を実行します。 このようなストリームを使用できます、FlushまたはFlushAsync内部バッファーをクリアし、基になるデータ ソースまたはリポジトリにすべてのデータが書き込まれたことを確認してください。

バッキング ストアを持たない (ビット バケットとも呼ばれます) のストリームを必要がある場合、Nullはこの目的で設計されたストリームのインスタンスを取得するフィールドです。

実装時の注意:

派生クラスを実装する場合Streamの実装を提供する必要があります、ReadおよびWriteメソッドです。 非同期のメソッドReadAsyncWriteAsyncCopyToAsync同期メソッドを使用してReadWrite実装にします。 そのため、独自ReadWrite非同期メソッドで正常に動作します。 既定の実装ReadByteWriteByte新しいの 1 つの要素のバイト配列を作成しの実装を呼び出すReadWriteです。 派生したときにStream、1 つのパフォーマンスを大幅に向上させる必要がある場合、内部バッファーへのアクセスにこれらのメソッドをオーバーライドすることをお勧めします。 実装を提供する必要がありますもCanReadCanSeekCanWriteFlushLengthPositionSeekSetLengthです。

オーバーライドしない場合、Closeメソッドが代わりに、すべてを配置、Streamのクリーンアップ ロジック、Disposeメソッドです。 詳細については、「Dispose メソッドの実装」を参照してください。

次の例は、使用する 2 つの方法を示しますFileStream非同期的に別のディレクトリに 1 つのディレクトリからファイルをコピーするオブジェクト。 FileStream クラスは Stream クラスから派生します。 非同期のメソッドを呼び出すので、Click コントロールの Button イベント ハンドラーは async 修飾子でマークされていることに注意してください。

using System;
using System.Threading.Tasks;
using System.Windows;
using System.IO;

namespace WpfApplication
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private async void Button_Click(object sender, RoutedEventArgs e)
        {
            string StartDirectory = @"c:\Users\exampleuser\start";
            string EndDirectory = @"c:\Users\exampleuser\end";

            foreach (string filename in Directory.EnumerateFiles(StartDirectory))
            {
                using (FileStream SourceStream = File.Open(filename, FileMode.Open))
                {
                    using (FileStream DestinationStream = File.Create(EndDirectory + filename.Substring(filename.LastIndexOf('\\'))))
                    {
                        await SourceStream.CopyToAsync(DestinationStream);
                    }
                }
            }
        }
    }
}

ユニバーサル Windows プラットフォーム
8 以降で使用可能
.NET Framework
1.1 以降で使用可能
ポータブル クラス ライブラリ
サポート対象: 移植可能 .NET プラットフォーム
Silverlight
2.0 以降で使用可能
Windows Phone Silverlight
7.0 以降で使用可能
Windows Phone
8.1 以降で使用可能

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

トップに戻る
表示: