MemoryStream.Read 方法

定義

多載

Read(Span<Byte>)

從目前的記憶體資料流讀取位元組序列,並將記憶體資料流中的位置依讀取的位元組數向前移動。

Read(Byte[], Int32, Int32)

從目前的資料流讀取位元組區塊,並且將資料寫入緩衝區。

Read(Span<Byte>)

從目前的記憶體資料流讀取位元組序列,並將記憶體資料流中的位置依讀取的位元組數向前移動。

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>

記憶體區域。 當這個方法傳回時,讀取自目前記憶體資料流來源的位元組會取代此範圍的內容。

傳回

Int32

緩衝區所讀取的總位元組數。 如果目前無法取得該數目的位元組,則這個數目可能小於緩衝區中配置的位元組數,如果已經到達記憶體資料流結尾,則為零 (0)。

適用於

Read(Byte[], Int32, Int32)

從目前的資料流讀取位元組區塊,並且將資料寫入緩衝區。

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 中以零為起始的位元組位移,用來開始儲存讀取自目前資料流的資料。

count
Int32

要讀取的最大位元組數。

傳回

Int32

寫入至緩衝區的總位元組數。 如果目前無法提供那麼多的位元組數目,則這個數目可能小於所要求的位元組數目,或如果在讀取任何資料之前已經到達資料流末端,則為零。

例外狀況

buffernull

offsetcount 為負。

緩衝區的長度減去 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 會提供從目前資料流程讀取的最大位元組數目。 傳回的值是讀取的實際位元組數,如果到達資料流程結尾,則為零。

如果讀取作業成功,資料流程內的目前位置會依讀取的位元組數目前進。 如果發生例外狀況,資料流程內的目前位置會保持不變。

Read只有在到達資料流程結尾時,方法才會傳回零。 在所有其他情況下, Read 一律會先從資料流程讀取至少一個位元組,然後再傳回。 根據定義,如果呼叫 時資料流程沒有資料可供使用 ReadRead 則方法會在到達資料流程結尾 (自動傳回零) 。 即使尚未到達資料流程結尾,實作仍可傳回比要求較少的位元組。

用於 BinaryReader 讀取基本資料類型。

警告

如果 參數中指定的 buffer 位元組陣列是 方法傳 GetBuffer 回的基礎緩衝區,則會覆寫陣列內容,而且不會擲回例外狀況。

另請參閱

適用於