Java NIO學習筆記(二)Buffer

概述:

Buffer是NIO中的緩衝區,它的本質是一塊可讀寫的數據,從中讀取數據的內存,被包裝成NIO的Buffer。它可以讀/寫數據

Buffer中的三個主要屬性:

Capacity(容量):
Capacity很好理解,就是這個緩衝區所能最大寫入的數據量是多少
Position(位置):
Position是一個指針,初始化的時候是0,當寫入數據的時候,用來標記哪些數據可寫,通過flip()方法來切換到讀的時候,重置爲0,最大值爲capacity-1.
Limit(限制):
寫模式的時候表示最多能寫多少,和capacity位置一樣,切換到讀模式的時候表示的是最多能讀多少,也就是上一次寫的時候position的位置。

Buffer中常用的一些方法:

flip()切換讀寫模式。
clean() 清空整個Buffer,但並不是真正的將數據清空,而是將position和limit都重置爲剛開始的位置。
compact()清空已讀的數據,未讀過的將放在Buffer的起始處,也就是將position放置在未讀數據的末尾,和clean()一樣,不是真的清除數據。
rewind()重讀,將position置爲0。
mark()標記一個特定的position。
reset()回到標記處。
allocate(****) 分配Buffer

Buffer的類型

ByteBuffer
ShortBuffer
IntBuffer
LongBuffer
FloatBuffer
DoubleBuffer
MappedBuffer

Buffer中讀寫數據的步驟:

1、寫入數據到Buffer中
2、調用flip()方法切換讀寫模式
3、Buffer中讀取數據
4、調用clear()或者compact()

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