java的nio中ByteBuffer

ByteBuffer

 

二、NIO進行文件讀取所涉及的步驟:

1.從FileInputStream對象獲取到Channel對象(FileChannel對象)

2.創建buffer

3.將數據從channel讀取到buffer對象中。

------------

三、NIO中的ByteBuffer的四個屬性

1.position  :當前正在讀或者正在寫的位置

2.limit  : 可以讀或寫的最大位置

3.capacity  :buffer的大小

4.mark   :調用mark()後將當前position值賦予mark,position會不斷變化,

                   調用reset()又會返回mark值

0 <= mark <= position <= limit <= capacity

四、flip()方法:讀寫操作切換時一定要調用,其作用

1.將limit值設爲當前的position

2.將position值設爲0

五、clear()

1.將limit值設置爲capacity

2.將position值設爲0

六、compact() 壓縮意思

1.將所有未讀的數據複製到buffer起始位置處。

2.將position設爲最後一個未讀元素的後面。

3.將limit設置爲capacity

4.現在buffer就準備好了,但是不會覆蓋未讀的數據。

 

 

channel中的讀寫數據一定是通過buffer來進行。

channel本身是雙向的

linux底層操作系統也是雙向的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章