public interface WritableByteChannel extends Channel
只有一个写操作在写信道可以在任何时间进行。如果一个线程启动了一个通道上的写操作,那么任何试图启动另一个写操作的其他线程将被阻塞,直到第一个操作完成。是否其他类型的I / O操作可以同时进行一个写操作取决于信道的类型。
int write(ByteBuffer src) throws IOException
尝试写了R字节通道,其中R是剩余的缓冲区,即src.remaining()字节数,目前这个方法被调用。
假设一个字节序列的长度N是书面的,在0 <= N <= R.这个字节序列将被从缓冲区开始在指数P转移,其中P是缓冲区的位置,目前这个方法被调用;最后一个字节的写将指数P + n - 1。在返回的缓冲区的位置将等于P + N;极限将不会改变。
除非另有规定,一个写操作将返回后,才写所有的R请求字节。某些类型的信道,根据它们的状态,可以只写一些字节或可能没有一个。例如,在非阻塞模式下的套接字通道不能写入任何大于在套接字输出缓冲区中的字节数的字节数。
这种方法可能在任何时候被调用。如果另一个线程已经在这个通道上启动了一个写操作,那么这个方法的调用将阻塞,直到第一个操作完成。
src
-缓冲器字节进行检索
NonWritableChannelException
-如果这个渠道没有打开写作
ClosedChannelException
-如果这通道关闭
AsynchronousCloseException
如果另一个线程关闭通道,而写操作正在进行中
ClosedByInterruptException
如果另一个线程中断当前线程,而写操作正在进行,从而关闭通道和设置当前线程的中断状态
IOException
-如果其他I/O错误发生
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.