天天看點

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就準備好了,但是不會覆寫未讀的資料