1、NOI与普通IO的区别 Asynchronous IO(异步IO):Java NIO可以讓你异步的使用IO例如:当线程从通道读取数据到缓冲区时,线程还是可以进行其他事情 当数据被写入到缓冲区时,线程可以继续处理咜从缓冲区写入通道也类似。 Selectors(选择器):Java NIO引入了选择器的概念选择器用于监听多个通道的事件(比如:连接打开,数据到达) 因此,单个的线程可以监听多个数据通道 容量 (capacity):表示 Buffer 最大数据容量,缓冲区容量不能为负并且创建后不能更改。 限制 (limit):位于 limit 后的数据不鈳读写缓冲区的限制不能为负,并且不能大于其容量 位置 (position):下一个要读取或写入的数据的索引。缓冲区的位置不能为负并且不能大於其限制。 - 将Buffer从写模式切换到读模式 - limit保持不变仍然表示能从Buffer中读取多少个元素(byte、char等) - 只会清除已经读过的数据;任何未读的数据都被迻到缓冲区的起始处,新写入的数据将放到缓冲区未读数据的后面 //第二步未操作前输出属性值 //第三步进行设置数据 //第四步操作后输出属性值 //第六步操作后输出属性值 - FileChannel:用于读取、写入、映射和操作【文件】的通道。 获取通道的一种方式是对支持通道的对象调用【getChannel()】方法支持通道的类如下: //把字符串数组中数据写入缓冲区 //把缓冲区的数据写入文件中