次の方法で共有


MemoryStream.Read メソッド

定義

オーバーロード

Read(Span<Byte>)

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

Read(Byte[], Int32, Int32)

現在のストリームからバイトのブロックを読み取り、データをバッファーに書き込みます。

Read(Span<Byte>)

ソース:
MemoryStream.cs
ソース:
MemoryStream.cs
ソース:
MemoryStream.cs

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

public:
 override int Read(Span<System::Byte> destination);
public:
 override int Read(Span<System::Byte> buffer);
public override int Read (Span<byte> destination);
public override int Read (Span<byte> buffer);
override this.Read : Span<byte> -> int
override this.Read : Span<byte> -> int
Public Overrides Function Read (destination As Span(Of Byte)) As Integer
Public Overrides Function Read (buffer As Span(Of Byte)) As Integer

パラメーター

destinationbuffer
Span<Byte>

メモリの領域。 このメソッドから制御が戻るときに、このスパンの内容は、現在のメモリ ストリーム ソースから読み取られたバイトに置き換えられます。

戻り値

バッファーに読み取られた合計バイト数。 要求しただけのバイト数を読み取ることができなかった場合、この値はバッファーに割り当てられているバイト数より小さくなります。メモリ ストリームの末尾に到達した場合は 0 (ゼロ) になることがあります。

適用対象

Read(Byte[], Int32, Int32)

ソース:
MemoryStream.cs
ソース:
MemoryStream.cs
ソース:
MemoryStream.cs

現在のストリームからバイトのブロックを読み取り、データをバッファーに書き込みます。

public:
 override int Read(cli::array <System::Byte> ^ buffer, int offset, int count);
public override int Read (byte[] buffer, int offset, int count);
override this.Read : byte[] * int * int -> int
Public Overrides Function Read (buffer As Byte(), offset As Integer, count As Integer) As Integer

パラメーター

buffer
Byte[]

このメソッドが戻るとき、指定したバイト配列の offset から (offset + count - 1) までの値が、現在のストリームから読み取られた文字に置き換えられています。

offset
Int32

現在のストリームからのデータの格納を開始する位置を示す buffer 内のバイト オフセット。インデックス番号は 0 から始まります。

count
Int32

読み取る最大バイト数。

戻り値

バッファーに書き込まれた合計バイト数。 要求しただけのバイト数を読み取ることができなかった場合、この値は要求したバイト数より小さくなります。また、データを読み取る前にストリームの末尾に到達した場合は 0 になります。

例外

buffernullです。

offset または count が負の値です。

バッファー長から offset を差し引いた値が count より小さい値です。

現在のストリーム インスタンスが閉じています。

このコード例は、MemoryStream クラスのために提供されている大規模な例の一部です。

// Read the first 20 bytes from the stream.
byteArray = gcnew array<Byte>(memStream->Length);
count = memStream->Read( byteArray, 0, 20 );
// Read the first 20 bytes from the stream.
byteArray = new byte[memStream.Length];
count = memStream.Read(byteArray, 0, 20);
' Read the first 20 bytes from the stream.
byteArray = _
    New Byte(CType(memStream.Length, Integer)){}
count = memStream.Read(byteArray, 0, 20)

注釈

このメソッドは、Read をオーバーライドします。

パラメーターは offset 、現在のストリームからのデータが書き込まれる最初のバイトの buffer オフセットを指定します。 パラメーターは count 、現在のストリームから読み取る最大バイト数を指定します。 返される値は、読み取られた実際のバイト数です。ストリームの末尾に達した場合は 0 です。

読み取り操作が成功した場合、ストリーム内の現在の位置は、読み取られたバイト数だけ進みます。 例外が発生した場合、ストリーム内の現在の位置は変更されません。

メソッドは Read 、ストリームの末尾に達した場合にのみ 0 を返します。 それ以外の場合は、 Read 返す前に常にストリームから少なくとも 1 バイトを読み取ります。 定義上、 のReadRead呼び出し時にストリームから使用できるデータがない場合、メソッドは 0 を返します (ストリームの末尾に自動的に到達します)。 実装では、ストリームの末尾に達していない場合でも、要求されたバイト数よりも少ないバイト数を自由に返します。

プリミティブ データ型を読み取る場合に 使用 BinaryReader します。

注意事項

パラメーターで buffer 指定されたバイト配列が メソッドによって GetBuffer 返される基になるバッファーである場合、配列の内容は上書きされ、例外はスローされません。

こちらもご覧ください

適用対象