天天看点

Java NIO ByteBuffer

文章目录

    • Java NIO ByteBuffer
      • 1. 使用NIO进行文件读取所涉及的步骤:
      • 2. `mark`,`position`,`limit`,`capacity` 四者之间的关系
      • 3. flip()方法
      • 4. clear()方法
      • 5. compact()方法

Java NIO ByteBuffer

1. 使用NIO进行文件读取所涉及的步骤:

  1. 从FileInputStream对象获取到Channel对象
  2. 创建Buffer
  3. 将数据从Channel中读取到Buffer对象中

2.

mark

position

limit

capacity

四者之间的关系

0 <=

mark

<=

position

<=

limit

<=

capacity

3. flip()方法

当读操作转换成写操作,或者写操作转换成读操作时,须调用flip()方法。

作用:

  1. 将limit值设为当前的position
  2. 将position设为0

4. clear()方法

作用:

  1. 将position值设为0
  2. 将limit值设为capacity

5. compact()方法

作用:

  1. 将所有未读的数据复制到buffer起始位置处
  2. 将position设为最后一个未读元素的后面
  3. 将limit设为capactiy
  4. 此时buffer就准备好了,但是不会覆盖未读的数据