1.IOBuffer:
基于javaNio中的ByteBuffer做了封装,用户操作缓冲区中的数据,包括基本数据类型以及字节数组和一些对象.其本质就是一个可动扩展的byte数组.
2.IoBuffer的索引属性:
capacity:代表当前缓冲区的大小
position:理解成当前读写位置,也可以理解成下一个可读数据单位的位置.Position<=Capacity的时候可以完成数据的读写操作.
limit:就是下一个不可以被读写缓冲区单元的位置.Limit<=Capacity.
3.IOBuffer常用api:
1)static allocate(int capacity) 已指定的大小开辟缓冲区的空间.
2)setAutoExpand(boolean autoExpand) 可以设置是否支持动态的扩展.
3)putShort(int index, short value)
putString(CharSequence val, CharsetEncoder encoder)
putInt(int value) 等等方法实现让缓冲区中放入数据. PutXXX();
4)flip:就是让我们的limit=position,position=0;为我们读取缓冲区的数据做好准备,因为有时候,limit!=position,一般在发送数据之前调用.
5)hasRemaining() :缓冲区中是否有数据:boolean是关于position<=limit=true,否则返回fals
6) remaining():返回的是缓冲区中可读数据的大小,limit-position的值.
7)Rest和clear
reset() :实现清空数据.
Clear():实现数据的覆盖.position=0;重新开始读我们缓冲区的数据