情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

MemoryStream クラス

2013/12/12

バッキング ストアとしてメモリを使用するストリームを作成します。

System.Object
  System.IO.Stream
    System.IO.MemoryStream

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

public class MemoryStream : Stream

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

  名前説明
パブリック メソッドMemoryStream()MemoryStream クラスの新しいインスタンスを、0 に初期化される拡張可能な容量を使用して初期化します。
パブリック メソッドMemoryStream(Byte[])指定したバイト配列に基づいて、サイズを変更できない MemoryStream クラスの新しいインスタンスを初期化します。
パブリック メソッドMemoryStream(Int32)MemoryStream クラスの新しいインスタンスを、指定に従って初期化される拡張可能な容量を使用して初期化します。
パブリック メソッドMemoryStream(Byte[], Boolean)CanWrite プロパティを指定どおりに設定し、指定したバイト配列に基づいて、サイズを変更できない MemoryStream クラスの新しいインスタンスを初期化します。
パブリック メソッドMemoryStream(Byte[], Int32, Int32)バイト配列の指定した領域 (インデックス) に基づいて、サイズを変更できない MemoryStream クラスの新しいインスタンスを初期化します。
パブリック メソッドMemoryStream(Byte[], Int32, Int32, Boolean)CanWrite プロパティを指定どおりに設定し、バイト配列の指定した領域に基づいて、サイズを変更できない MemoryStream クラスの新しいインスタンスを初期化します。
パブリック メソッドMemoryStream(Byte[], Int32, Int32, Boolean, Boolean)指定した CanWrite プロパティと指定した GetBuffer を呼び出す機能を設定して、バイト配列の指定した領域に基づき、MemoryStream クラスの新しいインスタンスを初期化します。
このページのトップへ

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

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

  名前説明
パブリック拡張メソッドAsInputStreamWindows ストア アプリ向け .NET のマネージ ストリームを Windows ランタイム の入力ストリームに変換します。 (WindowsRuntimeStreamExtensions によって定義されています。)
パブリック拡張メソッドAsOutputStreamWindows ストア アプリ向け .NET のマネージ ストリームを Windows ランタイム の出力ストリームに変換します。 (WindowsRuntimeStreamExtensions によって定義されています。)
パブリック拡張メソッドGetWindowsRuntimeBuffer()オーバーロードされます。 指定したメモリ ストリームと同じメモリを表す Windows.Storage.Streams.IBuffer インターフェイスを返します。 (WindowsRuntimeBufferExtensions によって定義されています。)
パブリック拡張メソッドGetWindowsRuntimeBuffer(Int32, Int32)オーバーロードされます。 指定したメモリ ストリームが表すメモリ内の領域を表す Windows.Storage.Streams.IBuffer インターフェイスを返します。 (WindowsRuntimeBufferExtensions によって定義されています。)
このページのトップへ

MemoryStream クラスは、バッキング ストアとしてディスクやネットワーク接続ではなく、メモリを使用するストリームを作成します。MemoryStream は、MemoryStream オブジェクトの作成時に初期化される符号なしバイト配列として格納されるデータをカプセル化します。配列は空の配列としても作成できます。カプセル化されたデータは、メモリで直接アクセスできます。メモリ ストリームを使用すると、アプリケーションでの一時バッファーと一時ファイルの必要性を減らすことができます。

ストリームの現在位置は、次の読み取りまたは書き込み操作が実行される位置です。現在の位置は、Seek メソッドで取得または設定できます。MemoryStream の新しいインスタンスを作成するときに、現在の位置はゼロに設定されます。

符号なしバイト配列で作成したメモリ ストリームには、サイズを変更できないデータのストリーム ビュー機能が用意されています。バイト配列を使用する場合、ストリームに追加したり、ストリームを縮小したりできません。ただし、コンストラクターに渡すパラメーターによっては、既存の内容を変更できることがあります。空のメモリ ストリームは、サイズの変更、書き込み、および読み取りを行うことができます。

MemoryStream オブジェクトを ResX ファイルまたは .resources ファイルに追加した場合、実行時に GetStream メソッドを呼び出してこのオブジェクトを取得します。

MemoryStream オブジェクトがリソース ファイルにシリアル化される場合、このオブジェクトは実際には UnmanagedMemoryStream としてシリアル化されます。これにより、パフォーマンスが向上するだけでなく、Stream メソッドを使用せずにデータへのポインターを直接取得できます。

バージョンについてのメモ

Windows Phone

ArrayTypeMismatchException は、アプリケーションが Stream.NullMemoryStream オブジェクトに格納しようとしたときにはスローされません。

Windows Phone OS

サポート: 8.0, 7.1, 7.0

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

表示: