JAVA NIO BUFFER

1.數組

 clear 和 compact 的區別 clear 會將未讀取的數據遺忘,可是compact不會遺忘,而是打包整合在一塊兒工具

若是Buffer中仍有未讀的數據,且後續還須要這些數據,可是此時想要先先寫些數據,那麼使用compact()方法ci

 

假設buffer的容量是10 ,寫入四個。讀取2個,clear會致使position成爲0,可是compact會將position設置爲2.打印buffer的關鍵參數爲:rem

position:2#remaining:8#limit:10#capacity:10########it

clear的結果是:position:0#remaining:10#limit:10#capacity:10########io

 

2.equals和compareTo打包

當知足下列條件時,表示兩個Buffer相等:方法

  1. 有相同的類型(byte、char、int等)。
  2. Buffer中剩餘的byte、char等的個數相等。
  3. Buffer中全部剩餘的byte、char等都相同。

如你所見,equals只是比較Buffer的一部分,不是每個在它裏面的元素都比較。實際上,它只比較Buffer中的剩餘元素。im

compareTo:數據

compareTo()方法比較兩個Buffer的剩餘元素(byte、char等), 若是知足下列條件,則認爲一個Buffer「小於」另外一個Buffer:

  1. 第一個不相等的元素小於另外一個Buffer中對應的元素 。
  2. 全部元素都相等,但第一個Buffer比另外一個先耗盡(第一個Buffer的元素個數比另外一個少)。

rewind:

Buffer.rewind()將position設回0,因此你能夠重讀Buffer中的全部數據。limit保持不變,仍然表示能從Buffer中讀取多少個元素(byte、char等)。

 

ByteBuffer.wrap

相似於一個工具,快速的將一個數組轉換爲ByteBuffer

相關文章
相關標籤/搜索