Java的NIO编程-Buffer
0x1 子类
Buffer是一个抽象类,所以一般使用他的子类来进行编程,常用的子类有:
ByteBuffer
IntBuffer
LongBuffer
CharBuffer
DoubleBufffer
FloatBuffer
ShortBuffer
MappedByteBuffer
0x2 属性
Buffer中有四个重要的属性,分别是:
- capacity:Buffer类的capacity属性,表示内部容量的大小
- position:Buffer类的position属性,表示当前的位置
- limit:Buffer类的limit属性,表示读写的最大上限。
- mark:暂存属性,暂时保存position的值,方便后面的重复使用position值。
0x3 方法
Buffer中几个重要的方法有:
- allocate():创建缓存区(BUffer创建缓存区不是用
new
,而是用这个方法来创建) - put():向缓冲器插入数据
- filp():翻转模式,将缓冲区改为读模式(缓冲区默认模式为写模式)。其实就改变了
limit
,position
,mark
属性的值。 - get():从缓冲区读取数据,从
position
位置开始读 - rewind():倒带(重复读取),就是将
position
的位置重置为0
- mark():
mark()
方法的作用就是将当前position
的位置暂存起来,放在mark
属性中。 - reset():将
position
重置为mark
属性的位置。 - clean():清空缓存区,重置
position
,limit
,mark
属性为初始值