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

MemoryStream クラス

 

公開日: 2016年10月

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

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

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

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

[SerializableAttribute]
[ComVisibleAttribute(true)]
public class MemoryStream : Stream

名前説明
System_CAPS_pubmethodMemoryStream()

MemoryStream クラスの新しいインスタンスを、0 に初期化される拡張可能な容量を使用して 初期化します。

System_CAPS_pubmethodMemoryStream(Byte[])

指定したバイト配列に基づいて、サイズを変更できない MemoryStream クラスの新しいインスタンスを初期化します。

System_CAPS_pubmethodMemoryStream(Byte[], Boolean)

CanWrite プロパティを指定どおりに設定し、指定したバイト配列に基づいて、サイズを変更できない MemoryStream クラスの新しいインスタンスを初期化します。

System_CAPS_pubmethodMemoryStream(Byte[], Int32, Int32)

バイト配列の指定した領域 (インデックス) に基づいて、サイズを変更できない MemoryStream クラスの新しいインスタンスを初期化します。

System_CAPS_pubmethodMemoryStream(Byte[], Int32, Int32, Boolean)

CanWrite プロパティを指定どおりに設定し、バイト配列の指定した領域に基づいて、サイズを変更できない MemoryStream クラスの新しいインスタンスを初期化します。

System_CAPS_pubmethodMemoryStream(Byte[], Int32, Int32, Boolean, Boolean)

CanWrite プロパティを指定どおりに設定し、GetBuffer を呼び出す機能を指定どおりに設定して、バイト配列の指定した領域に基づき、MemoryStream クラスの新しいインスタンスを初期化します。

System_CAPS_pubmethodMemoryStream(Int32)

MemoryStream クラスの新しいインスタンスを、指定に従って初期化される拡張可能な容量を使用して初期化します。

名前説明
System_CAPS_pubpropertyCanRead

現在のストリームが読み取りをサポートしているかどうかを示す値を取得します。(Stream.CanRead をオーバーライドします。)

System_CAPS_pubpropertyCanSeek

現在のストリームがシークをサポートしているかどうかを示す値を取得します。(Stream.CanSeek をオーバーライドします。)

System_CAPS_pubpropertyCanTimeout

現在のストリームがタイムアウトできるかどうかを決定する値を取得します。(Stream から継承されます。)

System_CAPS_pubpropertyCanWrite

現在のストリームが書き込みをサポートしているかどうかを示す値を取得します。(Stream.CanWrite をオーバーライドします。)

System_CAPS_pubpropertyCapacity

ストリームに割り当てられたバイト数を取得または設定します。

System_CAPS_pubpropertyLength

バイト単位のストリーム長を取得します。(Stream.Length をオーバーライドします。)

System_CAPS_pubpropertyPosition

ストリームの現在位置を取得または設定します。(Stream.Position をオーバーライドします。)

System_CAPS_pubpropertyReadTimeout

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

System_CAPS_pubpropertyWriteTimeout

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

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

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

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

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

System_CAPS_pubmethodClose()

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

System_CAPS_pubmethodCopyTo(Stream)

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

System_CAPS_pubmethodCopyTo(Stream, Int32)

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

System_CAPS_pubmethodCopyToAsync(Stream)

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

System_CAPS_pubmethodCopyToAsync(Stream, Int32)

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

System_CAPS_pubmethodCopyToAsync(Stream, Int32, CancellationToken)

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

System_CAPS_pubmethodCreateObjRef(Type)

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

System_CAPS_protmethodCreateWaitHandle()

互換性のために残されています。 WaitHandle オブジェクトを割り当てます。(Stream から継承されます。)

System_CAPS_pubmethodDispose()

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

System_CAPS_protmethodDispose(Boolean)

MemoryStream クラスによって使用されているアンマネージ リソースを解放し、オプションでマネージ リソースも解放します。(Stream.Dispose(Boolean) をオーバーライドします。)

System_CAPS_pubmethodEndRead(IAsyncResult)

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

System_CAPS_pubmethodEndWrite(IAsyncResult)

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

System_CAPS_pubmethodEquals(Object)

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

System_CAPS_protmethodFinalize()

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

System_CAPS_pubmethodFlush()

アクションが実行されないように、Stream.Flush メソッドをオーバーライドします。(Stream.Flush() をオーバーライドします。)

System_CAPS_pubmethodFlushAsync()

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

System_CAPS_pubmethodFlushAsync(CancellationToken)

このストリームのすべてのバッファーを非同期的にクリアし、キャンセル要求を監視します。(Stream.FlushAsync(CancellationToken) をオーバーライドします。)

System_CAPS_pubmethodGetBuffer()

このストリームの作成元の符号なしバイトの配列を返します。

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 のサポートを提供します。(Stream から継承されます。)

System_CAPS_pubmethodRead(Byte[], Int32, Int32)

現在のストリームからバイトのブロックを読み取り、データをバッファーに書き込みます。(Stream.Read(Byte[], Int32, Int32) をオーバーライドします。)

System_CAPS_pubmethodReadAsync(Byte[], Int32, Int32)

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

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

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

System_CAPS_pubmethodReadByte()

現在のストリームからバイトを読み取ります。(Stream.ReadByte() をオーバーライドします。)

System_CAPS_pubmethodSeek(Int64, SeekOrigin)

現在のストリーム内の位置を指定した値に設定します。(Stream.Seek(Int64, SeekOrigin) をオーバーライドします。)

System_CAPS_pubmethodSetLength(Int64)

現在のストリーム長を指定した値に設定します。(Stream.SetLength(Int64) をオーバーライドします。)

System_CAPS_pubmethodToArray()

Position プロパティには関係なく、ストリームの内容をバイト配列に書き込みます。

System_CAPS_pubmethodToString()

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

System_CAPS_pubmethodTryGetBuffer(ArraySegment<Byte>)

このストリームの作成元の符号なしバイトの配列を返します。 戻り値は、変換が成功したかどうかを示します。

System_CAPS_pubmethodWrite(Byte[], Int32, Int32)

バッファーから読み取ったデータを使用して、現在のストリームにバイトのブロックを書き込みます。(Stream.Write(Byte[], Int32, Int32) をオーバーライドします。)

System_CAPS_pubmethodWriteAsync(Byte[], Int32, Int32)

現在のストリームにバイト シーケンスを非同期に書き込み、書き込んだバイト数だけストリーム内の現在位置を進めます。(Stream から継承されます。)

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

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

System_CAPS_pubmethodWriteByte(Byte)

現在のストリーム内の現在位置に 1 バイトを書き込みます。(Stream.WriteByte(Byte) をオーバーライドします。)

System_CAPS_pubmethodWriteTo(Stream)

メモリ ストリームの内容全体を別のストリームに書き込みます。

System_CAPS_noteメモ

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

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

System_CAPS_important重要

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

符号なしバイト配列が作成したメモリ ストリームは、データのサイズを変更できないストリームを提供します。 バイト配列を使用する場合に追加もコンス トラクターに渡されるパラメーターに応じて、既存の内容を変更することもできますが、ストリームを圧縮します。 空のメモリ ストリームはのサイズは、およびに書き込みし、読み取りをすることができます。

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

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

次のコード例では、バッキング ストアとしてメモリを使用してデータを読み書きする方法を示します。

using System;
using System.IO;
using System.Text;

class MemStream
{
    static void Main()
    {
        int count;
        byte[] byteArray;
        char[] charArray;
        UnicodeEncoding uniEncoding = new UnicodeEncoding();

        // Create the data to write to the stream.
        byte[] firstString = uniEncoding.GetBytes(
            "Invalid file path characters are: ");
        byte[] secondString = uniEncoding.GetBytes(
            Path.GetInvalidPathChars());

        using(MemoryStream memStream = new MemoryStream(100))
        {
            // Write the first string to the stream.
            memStream.Write(firstString, 0 , firstString.Length);

            // Write the second string to the stream, byte by byte.
            count = 0;
            while(count < secondString.Length)
            {
                memStream.WriteByte(secondString[count++]);
            }

            // Write the stream properties to the console.
            Console.WriteLine(
                "Capacity = {0}, Length = {1}, Position = {2}\n",
                memStream.Capacity.ToString(),
                memStream.Length.ToString(),
                memStream.Position.ToString());

            // Set the position to the beginning of the stream.
            memStream.Seek(0, SeekOrigin.Begin);

            // Read the first 20 bytes from the stream.
            byteArray = new byte[memStream.Length];
            count = memStream.Read(byteArray, 0, 20);

            // Read the remaining bytes, byte by byte.
            while(count < memStream.Length)
            {
                byteArray[count++] =
                    Convert.ToByte(memStream.ReadByte());
            }

            // Decode the byte array into a char array
            // and write it to the console.
            charArray = new char[uniEncoding.GetCharCount(
                byteArray, 0, count)];
            uniEncoding.GetDecoder().GetChars(
                byteArray, 0, count, charArray, 0);
            Console.WriteLine(charArray);
        }
    }
}

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

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

トップに戻る
表示: