JavaTM 2 Platform
Standard Ed. 6

java.nio.channels
介面 WritableByteChannel

所有父級介面:
Channel, Closeable
所有已知子介面:
ByteChannel, GatheringByteChannel
所有已知實作類別:
DatagramChannel, FileChannel, Pipe.SinkChannel, SocketChannel

public interface WritableByteChannel
extends Channel

可寫入位元組的通道。

在任意給定時刻,一個可寫入通道上只能進行一個寫入操作。如果某個執行緒在通道上發起寫入操作,那麼在第一個操作完成之前,將阻塞其他所有試圖發起另一個寫入操作的執行緒。其他種類別的 I/O 操作是否繼續與寫入操作共時執行則取決於該通道的型別。

從以下版本開始:
1.4

方法摘要
 int write(ByteBuffer src)
          將位元組序列從給定的緩衝區中寫入此通道。
 
從介面 java.nio.channels.Channel 繼承的方法
close, isOpen
 

方法詳細資訊

write

int write(ByteBuffer src)
          throws IOException
將位元組序列從給定的緩衝區中寫入此通道。

嘗試最多向該通道中寫入 r 個位元組,其中 r 是調用此方法時緩衝區中剩餘的位元組數,即 src.remaining()

假定寫入長度為 n 的位元組序列,其中 0 <= n <= r。從緩衝區的索引 p 處開始傳輸該位元組,其中 p 是調用此方法時該緩衝區的位置;最後寫入的位元組索引是 p + n - 1。返回時,該緩衝區的位置將等於 p + n;其限制不會更改。

除非另行指定,否則僅在寫入所有請求的 r 個位元組後 write 操作才會返回。有些型別的通道(取決於它們的狀態)可能僅寫入某些位元組或者可能根本不寫入。例如,處於非阻塞網要的Socket通道只能寫入該Socket輸出緩衝區中的位元組。

可在任意時間調用此方法。但是如果另一個執行緒已經在此通道上發起了一個寫入操作,則在該操作完成前此方法的調用被阻塞。

參數:
src - 要從中獲取位元組的緩衝區
返回:
寫入的位元組數,可能為零
拋出:
NonWritableChannelException - 如果此通道未對寫入打開
ClosedChannelException - 如果此通道已關閉
AsynchronousCloseException - 如果正在進行寫入操作時另一個執行緒關閉了此通道
ClosedByInterruptException - 如果正在進行寫入操作時另一個執行緒中斷了當前執行緒,因此關閉了該通道並將當前執行緒的狀態設置為中斷
IOException - 如果發生其他 I/O 錯誤

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only