文章目录
-
- Java NIO ByteBuffer
-
- 1. 使用NIO进行文件读取所涉及的步骤:
- 2. `mark`,`position`,`limit`,`capacity` 四者之间的关系
- 3. flip()方法
- 4. clear()方法
- 5. compact()方法
Java NIO ByteBuffer
1. 使用NIO进行文件读取所涉及的步骤:
- 从FileInputStream对象获取到Channel对象
- 创建Buffer
- 将数据从Channel中读取到Buffer对象中
2. mark
, position
, limit
, capacity
四者之间的关系
mark
position
limit
capacity
0 <=<=
mark
<=
position
<=
limit
capacity
3. flip()方法
当读操作转换成写操作,或者写操作转换成读操作时,须调用flip()方法。
作用:
- 将limit值设为当前的position
- 将position设为0
4. clear()方法
作用:
- 将position值设为0
- 将limit值设为capacity
5. compact()方法
作用:
- 将所有未读的数据复制到buffer起始位置处
- 将position设为最后一个未读元素的后面
- 将limit设为capactiy
- 此时buffer就准备好了,但是不会覆盖未读的数据