- channel是位于一个字节缓冲区到实体直接的有效传输。就是字节缓冲区转化为文件或者流信息的一个管道.
- 过程大致为
- 1.填充缓冲区
- 2.将缓冲区写道通道中
- 3.接受缓冲区数据(flip),清空
- 操作系统的文件描述符和操作系统的文件句柄与channel有着一对一的关系。
- 通道是一种途径,借助该途径可以降低总开销来访问操作系统本身的I/O服务。缓冲区是通道连接的俩个端点,一个是起点一个是终点.
- 通道接口的顶层父接口
public interface Channel extends Closeable {
public boolean isOpen();
public void close() throws IOException;
}
- 通道接口有许多扩展的接口




- I/O操作的类别
- 文件I/O对应的通道是FileChannel这个实现类
- StreamI/O 对应的通道是 socket通道
- 通道的使用
- 通道可以说单向的也可以是双向的,类实现WritableByteChannel和ReadableByteChannel,实现一个是单项的,实现俩个是双向的接口.
- fileChannel和其他双向通道是不一样的。虽然fileChannel也继承了ByteChannnel这个接口。但是一个连接到只读文件的Channel实力不能进行写操作。但是当FileChannel调用write()方法将抛出未检查的NonWriteableChannelException异常,因为FileInputStream对象总是以read-only的权限打开文件.