Java NIO 通道:全面解析与应用实践
1. 通道基础概念
1.1 通道的方向性
通道可分为单向和双向两种。单向通道只能实现数据的单向传输,而双向通道则可以在两个方向上传输数据。以下是相关接口的定义:
public interface ByteChannel
extends ReadableByteChannel, WritableByteChannel
{
}
ByteChannel 接口继承了 ReadableByteChannel 和 WritableByteChannel ,它没有声明新的 API 方法,只是将这两个接口聚合在一个新名称下,方便类的定义和使用 instanceof 运算符进行通道对象的测试。
1.2 通道操作的约束
一个通道实例的能力会受到其所连接的 I/O 服务特性的约束。例如,通过 FileInputStream 的 getChannel() 方法获得的 FileChannel 对象虽然实现了 ByteChannel 接口,但由于文件是以只读权限打开的,调用其 write() 方法会抛出 NonWritableChannelException 。示例代码如下:
超级会员免费看
订阅专栏 解锁全文
28

被折叠的 条评论
为什么被折叠?



