营销网站大全,宁夏网站建设品牌公司,大同网站建设设计,网站设计的字体引言 
Java NIO (New IO#xff0c;或Non Blocking IO) 是从Java1.4 版本开始引入的一个新的 IO API#xff0c;可以代替标准的Java IO API。 
NIO与原来的IO有同样的作用和目的#xff0c;但是使用的方式完全不同。 
NIO支持面向缓冲区、基于通道的IO操作。NIO将以更加高效…引言 
Java NIO (New IO或Non Blocking IO) 是从Java1.4 版本开始引入的一个新的 IO API可以代替标准的Java IO API。 
NIO与原来的IO有同样的作用和目的但是使用的方式完全不同。 
NIO支持面向缓冲区、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。 
一、NIO 与 IO 的主要区别 
IONIO面向流Stream Oriented面向缓冲区Buffer Oriented阻塞IOBlocking IO非阻塞IONon-Blocking IO无选择器Selectors
面向流指的是输入输出是基于“流”的概念而且流是单向的不管输入还是输出都必须使用对应的输入流和输出流。流的本身也是数据在传输当中的一种抽象形式。 
在NIO 中有通道channel的概念是输出端和输入端之间的桥梁。虽然流也有类似的含义但是不同的是通道仅仅作为连接本身不包含任何数据。与之进行配合使用的是缓冲区Buffer。如果把通道理解为铁路那么缓冲区就可以是火车。NIO中的“通道  缓冲区”的组合可以完成双向传输的目的。 
阻塞与非阻塞、选择器都是针对网络通信而言的。后面的网络通讯会详细讲解。 
二、通道Channel和缓冲区Buffer 
Java NIO 系统的核心在于通道和缓冲区。 
通道表示打开到IO 设备文件、套接字的连接。若需要使用NIO 系统就必须要获取连接 IO 设备的通道以及用于容纳数据的缓冲区然后操作缓冲区对数据进行操作。 
简而言之Channel 负责传输 Buffer 负责存储。