java NIO学习(一)
NIO的全称是non-blocking IO,也就是非阻塞IO,也有的人叫他New IO。他的核心内容主要有三部分,Channel(通道),Buffer(缓冲区), Selecto(选择器)。下面我们针对这三部分详细了解一下NIO。 Buffer(缓冲区) Buffer缓冲是一个指定固定数据量的容器,一个连续数组。除内容之外,缓冲区还具有位置和界限,其中位置是要读写的下一个元素的索引,界限是第一个应该读写的元素的索引。 java中每个非布尔基本类型都有一个缓冲区类。 Buffer通过 capacity, position, limit, mark 这四个变量来保存这个数据的当前位置状态,下面介绍一下这四个属性的意义。 capacity( 容量值 ):缓冲区数组的总长度 position( 位置 ):下一个要操作的数据元素的位置 limit( 极限 ):缓冲区数组中不可操作的下一个元素的位置 mark( 标记 ):用于记录当前position的位置,默认是-1 基本 Buffer 类定义了这些属性以及清除、反转和重绕方法,用以标记当前位置,以及将当前位置重置为前一个标记处。 clear() 使缓冲区准备好信道读取或相对 放置 操作的一个新的序列:它设置了限制的能力和位置为零。 flip() 使缓冲区准备好新的通道写入或相对 获取操作 序列:它将限制设置为当前位置,然后将位置设置为零。