总结
- 实现WritableByteChannel接口的通道是可以写入字节的通道
- 在任何给定时间,只能对可写通道执行一次写入操作。如果一个线程在通道上启动写操作,那么尝试启动另一个写操作的任何其他线程都将阻塞,直到第一个操作完成。其他类型的I/O操作是否可以与写操作同时进行取决于通道的类型
WritableByteChannel接口方法
方法名 | 作用 |
---|---|
int write(ByteBuffer src) | 从给定缓冲区ByteBuffer 将字节序列写入此通道,返回的int表示写入通道的字节个数,可以随时调用此方法。但是,如果另一个线程已经在此通道上启动了写入操作,则此方法的调用将被阻止,直到第一个操作完成 |
write(ByteBuffer src)方法可能引发的异常
异常名 | 意义 |
---|---|
NonWritableChannelException | 如果未打开此通道就进行写入 |
ClosedChannelException | 如果此通道关闭了 |
AsynchronousCloseException | 如果另一个线程在该线程进行写入操作时关闭此通道 |
ClosedByInterruptException | 如果另一个线程在当前线程进行写入操作时中断当前线程,从而关闭通道并设置当前线程的中断状态 |
IOException | 如果发生其他I/O错误 |