|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
public interface ReadableByteChannel
可讀取位元組的通道。
在任意給定時刻,一個可讀取通道上只能進行一個讀取操作。如果某個執行緒在通道上發起讀取操作,那麼在第一個操作完成之前,將阻塞其他所有試圖發起另一個讀取操作的執行緒。其他種類別的 I/O 操作是否繼續與讀取操作共時執行取決於該通道的型別。
方法摘要 | |
---|---|
int |
read(ByteBuffer dst)
將位元組序列從此通道中讀入給定的緩衝區。 |
從介面 java.nio.channels.Channel 繼承的方法 |
---|
close, isOpen |
方法詳細資訊 |
---|
int read(ByteBuffer dst) throws IOException
嘗試最多從該通道中讀取 r 個位元組,其中 r 是調用此方法時緩衝區中剩餘的位元組數,即 dst.remaining()。
假定讀取的位元組序列長度為 n,其中 0 <= n <= r。此位元組序列將被傳輸到緩衝區中,序列中的第一個位元組位於索引 p 處,最後一個位元組則位於索引 p + n - 1 處,其中 p 是調用此方法時緩衝區的位置。返回時,該緩衝區的位置將等於 p + n;其限制不會更改。
讀取操作可能不填充緩衝區,實際上它可能根本不讀取任何位元組。是否如此執行取決於通道的性質和狀態。例如,處於非阻塞網要的Socket通道只能從該Socket的輸入緩衝區中讀取立即可用的位元組;類似地,檔案通道只能讀取檔案中剩餘的位元組。但是可以保證,如果某個通道處於阻塞網要,並且緩衝區中至少剩餘一個位元組,則在讀取至少一個位元組之前將阻塞此方法。
可在任意時間調用此方法。但是如果另一個執行緒已經在此通道上發起了一個讀取操作,則在該操作完成前此方法的調用被阻塞。
dst
- 要向其中傳輸位元組的緩衝區
NonReadableChannelException
- 如果不允許從此通道進行讀取操作
ClosedChannelException
- 如果此通道已關閉
AsynchronousCloseException
- 如果正在進行讀取操作時另一個執行緒關閉了此通道
ClosedByInterruptException
- 如果正在進行讀取操作時另一個執行緒中斷了當前執行緒,因此關閉了該通道並將當前執行緒設置為中斷狀態
IOException
- 如果發生其他 I/O 錯誤
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。