NIO是Java中的一种同步非阻塞IO,NIO是面向buffer的非阻塞IO。其中最重要的的三个核心概念是:Channel,Buffer和Selector。
Channel
Channel类似于BIO中的流,可以从中读取或者写入数据。但它和流有以下区别:
Channel是双向的,既可以读又可以写,而流是单向的。
Channel可以进行异步的读写。
对Channel的读写必须通过buffer对象。
在Java NIO中Channel主要有如下几种类型:
FileChannel:从文件读取数据的
DatagramChannel:读写UDP网络协议数据
SocketChannel:读写TCP网络协议数据
ServerSocketChannel:可以监听TCP连接