Java NIO(New IO Non-blocking IO)是从Java1.4开始引入的一个新的IO API,可以替代标准的Java IO API。NIO与原来的IO有相同的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。
Java NIO 与 IO的主要区别:
IO
面向流(Streaming) 单向
阻塞IO(Blocking IO)
NIO
面向缓冲区(Buffer Oriented) 双向
非阻塞IO(Non Blocking IO)
选择器(Selectors)
NIO系统的核心在于:
通道channel和缓冲区buffer。通道表示打开IO设备(例如:文件、套接字)的连接。
若要使用NIO系统,需要获取用于连接IO设备的通道以及用于容纳数据的缓冲区,然后操作缓冲区,对数据进行处理。
总之:
Channel负责传输,Buffer负责存储。