MemoryStream.Read 方法

定義

多載

名稱 Description
Read(Span<Byte>)

從目前記憶體串流讀取一串位元組,並依讀取位元組數推進記憶體串流中的位置。

Read(Byte[], Int32, Int32)

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

Read(Span<Byte>)

來源:
MemoryStream.cs
來源:
MemoryStream.cs
來源:
MemoryStream.cs
來源:
MemoryStream.cs
來源:
MemoryStream.cs

從目前記憶體串流讀取一串位元組,並依讀取位元組數推進記憶體串流中的位置。

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

參數

destinationbuffer
Span<Byte>

一個記憶區域。 當此方法回傳時,該區間的內容會被從當前記憶體串流來源讀取的位元組取代。

傳回

讀取到緩衝區的總位元組數。 若目前沒有該位元組可用,則此數可小於緩衝區中分配的位元組數;若已到達記憶體串流末端,則為零(0)。

適用於

Read(Byte[], Int32, Int32)

來源:
MemoryStream.cs
來源:
MemoryStream.cs
來源:
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 量。

count
Int32

最大可讀取的位元組數。

傳回

即寫入緩衝區的總位元組數。 若請求的位元組數目前無法使用,則該位元組數可小於該位元組數;若串流結束前尚未讀取任何位元組,則為零。

例外狀況

buffernull

offsetcount 是陰性。

offset 從緩衝區長度減去後,小於 count

目前的串流實例已關閉。

範例

此程式碼範例是本類別更大範例 MemoryStream 的一部分。

// 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 總是至少讀取一個位元組後再返回。 根據定義,若呼叫 時串流無資料 Read可用,該 Read 方法回傳零(自動到達串流末端)。 即使串流尚未到達終點,實作也可以自由回傳比請求的位元組少。

用於 BinaryReader 讀取原始資料型態。

注意事項

如果參數中 buffer 指定的位元組陣列是方法回傳 GetBuffer 的底層緩衝區,陣列內容會被覆寫,且不會拋出例外。

另請參閱

適用於