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底層操作系統也是雙向的。