|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
public interface ScatteringByteChannel
可將位元組讀入緩衝區序列的通道。
分散 讀取操作可在單個調用中將一個位元組序列讀入一個或多個給定的緩衝區序列。分散讀取通常在實作網路協議或檔案格式時很有用,例如將資料分組放入段中(這些段由一個或多個長度固定的頭,後跟長度可變的正文組成)。在 GatheringByteChannel
介面中定義了類似的集中 寫入操作。
方法摘要 | |
---|---|
long |
read(ByteBuffer[] dsts)
將位元組序列從此通道讀入給定的緩衝區。 |
long |
read(ByteBuffer[] dsts,
int offset,
int length)
將位元組序列從此通道讀入給定緩衝區的子序列中。 |
從介面 java.nio.channels.ReadableByteChannel 繼承的方法 |
---|
read |
從介面 java.nio.channels.Channel 繼承的方法 |
---|
close, isOpen |
方法詳細資訊 |
---|
long read(ByteBuffer[] dsts, int offset, int length) throws IOException
調用此方法會嘗試最多從此通道讀取 r 個位元組,其中 r 是給定緩衝區陣列的指定子序列中剩餘的位元組數,也就是
dsts[offset].remaining() + dsts[offset+1].remaining() + ... + dsts[offset+length-1].remaining()
假定讀取的位元組序列長度為 n,其中 0 <= n <= r。將此序列的前 dsts[offset].remaining() 個位元組傳輸到緩衝區 dsts[offset] 中,然後將後面的 dsts[offset+1].remaining() 個位元組傳輸到緩衝區 dsts[offset+1] 中,依此類別推,直到將整個位元組序列傳輸到給定緩衝區中。向每個緩衝區中傳輸盡可能多的位元組,因為要保證每個已更新緩衝區(最後一個已更新緩衝區除外)的最終位置等於該緩衝區的限制。
可在任意時間調用此方法。但是如果另一個執行緒已經在此通道上發起了一個讀取操作,則在該操作完成前此方法的調用被阻塞。
dsts
- 要向其中傳輸位元組的緩衝區offset
- 第一個緩衝區(位元組傳輸到該緩衝區中)在緩衝區陣列中的偏移量;必須為非負數並且不能大於 dsts.lengthlength
- 要存取的最大緩衝區數;必須為非負數並且不能大於 dsts.length - offset
IndexOutOfBoundsException
- 如果關於 offset 和 length 參數的前提不成立
NonReadableChannelException
- 如果不允許從此通道進行讀取操作
ClosedChannelException
- 如果此通道已關閉
AsynchronousCloseException
- 如果正在進行讀取操作時另一個執行緒關閉了此通道
ClosedByInterruptException
- 如果正在進行讀取操作時另一個執行緒中斷了當前執行緒,因此關閉了該通道並將當前執行緒設置為中斷狀態
IOException
- 如果發生其他 I/O 錯誤long read(ByteBuffer[] dsts) throws IOException
調用此方法的形式為 c.read(dsts),該調用與以下調用完全相同:
c.read(dsts, 0,dsts.length);
dsts
- 要向其中傳輸位元組的緩衝區
NonReadableChannelException
- 如果不允許從此通道進行讀取操作
ClosedChannelException
- 如果此通道已關閉
AsynchronousCloseException
- 如果正在進行讀取操作時另一個執行緒關閉了此通道
ClosedByInterruptException
- 如果正在進行讀取操作時另一個執行緒中斷了當前執行緒,因此關閉了該通道並將當前執行緒設置為中斷狀態
IOException
- 如果發生其他 I/O 錯誤
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。