JAVA NIIO 缓冲区buffer

1.什么是buffer?

装固定数量的数据容器

 

2.buffer的作用

作为存储器或运输中转站

 

3.buffer的层次图

Buffer

CharBuffer IntBuffer DoubleBuffer ShortBuffer LongBuffer FloatBuffer ByteBuffer(MapperByteBuffer)

 

4.属性

Capacity: 数据元素的最大数量,不能改变

Limit: 现存元素的计数

Position: 下一个将要被读或写的元素的位置  get() put()来更新此值

Mark:  mark() mark = Position reset() position = mark

 

5.存取和填充

get();

get(char[] dst);

get(int index)

get(char[] dst, int offset, int length)

put(char c)

put(char[] src)

put(CharBuffer src)

put(String src)

put(int index, chat c)

put(char[] src, int offset, int length)

put(String src, int start, int end)

 

6.翻转

flip(): limit = position    postion = 0

rewind(): position = 0

 

7.释放

hadRemaining(): 是否达到缓冲区上界

remianing():   当前位置到上界的元素个数

 

8.压缩

compact(): 丢弃已释放的数据,保留未释放的数据

 

9.标记

mark()  reset()

 

10.比较

equals: 比较两个缓冲区的内容是否相等 position -> limit的内容相等

compareTo: 按字典顺序比较 返回-1 0 1

 

11.创建缓冲区

allocate

wrap

hasArray

array

arrayOffset

 

12.复制缓冲区

duplicate: 复制一份副本

asReadOnlyBuffer: 生成只读缓冲区视图

slice: 分割缓冲区  capacity = limit -position

 

 

你可能感兴趣的:(nio)