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

相关文章
相关标签/搜索