1. Channel通道概述
<1> 通道(Channel):由java.nio.channels包定义的。
Channel 表示IO源与目标打开的连接。
Channel类似于传统的“流”。
<2> 标准的IO,是基于字节流和字符流进行操作的。
而NIO,是基于通道(Channel) 和 缓冲区(Buffer)进行操作,
数据总是从通道读取到缓冲区中,或者从缓冲区写入到通道中
(例:相当于一根管子,buffer中的数据可以通过管子,写入被操作的资源当中;
也可以将资源通过管子,写入到buffer中去)
2. Channel API
Java为Channel接口提供的最主要实现类如下:
本地资源处理
FileChannel:用于读取、写入、映射和操作文件的通道
网络资源处理
DatagramChannel: 通过 UDP 读写网络中的数据通道
SocketChannel: 通过TCP读写网络中的数据 (常用)
ServerSocketChannel:可以监听新进来的TCP连接,对每一个新进来的连接都会创建一个SocketChannel