IReadableByteChannel.Read(ByteBuffer) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
從此通道讀取一串位元組到給定的緩衝區。
[Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)I", "GetRead_Ljava_nio_ByteBuffer_Handler:Java.Nio.Channels.IReadableByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public int Read(Java.Nio.ByteBuffer? dst);
[<Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)I", "GetRead_Ljava_nio_ByteBuffer_Handler:Java.Nio.Channels.IReadableByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member Read : Java.Nio.ByteBuffer -> int
參數
- dst
- ByteBuffer
位元組要傳送到的緩衝區
傳回
讀取的位元組數,可能是零,或 -1 通道已結束串流
- 屬性
例外狀況
如果另一個執行緒在讀取過程中關閉了通道。
如果有其他執行緒在操作進行中中斷呼叫執行緒。 呼叫執行緒的中斷狀態被設定,通道關閉。
如果頻道關閉。
另一場 I/O 錯誤發生,詳情請見訊息。
如果頻道未開啟供讀取。
備註
從此通道讀取一串位元組到給定的緩衝區。
嘗試從通道讀取最多 r 個位元組,其中 r 是緩衝區中剩餘的位元組數,即 dst.remaining()此方法被呼叫時的位元組數。
假設讀取長度 為 n 的位元組序列,其中 0& nbsp;<= n <= R。 此位元組序列會被傳送到緩衝區,使序列中的第一個位元組位於索引 p ,最後一個位元組位於 p + n - 1,其中 p 是該方法被呼叫時緩衝區的位置。 返回時緩衝區的位置將等於 p + n;其極限不會改變。
讀取操作可能無法填滿緩衝區,事實上甚至可能根本不讀取任何位元組。 是否會這麼做取決於頻道的性質與狀態。 例如,非阻塞模式下的套接字通道無法讀取超過該套接字輸入緩衝區立即可用的位元組;同樣地,檔案通道不能讀取超過檔案中剩餘的位元組。 不過可以保證,如果通道處於阻塞模式且緩衝區中至少剩餘一個位元組,此方法會阻塞直到至少讀取一個位元組為止。
此方法可隨時啟動。 然而,如果已有其他執行緒對該通道發起讀取操作,則呼叫此方法會阻塞,直到第一個操作完成。
Java 文件 java.nio.channels.ReadableByteChannel.read(java.nio.ByteBuffer)。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。