MemoryStream.Read 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
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
參數
傳回
緩衝區所讀取的總位元組數。 如果目前無法取得該數目的位元組,則這個數目可能小於緩衝區中配置的位元組數,如果已經到達記憶體資料流結尾,則為零 (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
要讀取的最大位元組數。
傳回
寫入至緩衝區的總位元組數。 如果目前無法提供那麼多的位元組數目,則這個數目可能小於所要求的位元組數目,或如果在讀取任何資料之前已經到達資料流末端,則為零。
例外狀況
buffer
為 null
。
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
會提供從目前數據流讀取的最大位元元組數目。 傳回的值是讀取的實際位元組數目,如果到達數據流結尾,則為零。
如果讀取作業成功,數據流中的目前位置會依讀取的位元元組數目前進。 如果發生例外狀況,數據流中的目前位置會保持不變。
Read
只有在到達數據流結尾時,方法才會傳回零。 在其他所有情況下,在傳回之前, Read
一律會先從數據流讀取至少一個字節。 根據定義,如果在呼叫 Read
時無法從數據流取得任何數據,方法 Read
就會傳回零 (自動到達數據流結尾) 。 即使尚未到達數據流結尾,實作仍可傳回比要求的位元組少。
用於 BinaryReader 讀取基本數據類型。
警告
如果 參數中指定的 buffer
位元組陣列是 方法傳 GetBuffer 回的基礎緩衝區,則會覆寫數位內容,而且不會擲回任何例外狀況。