- 缓冲区本质上是一个可以写入数据的内存块,之后可以读取数据。 Buffer 对象包装了此内存块,提供了一组方法,可以更轻松地使用内存块。
Buffer通常的操作
-
将数据写入缓冲区
-
调用 buffer.flip() 反转读写模式
-
从缓冲区读取数据
-
调用 buffer.clear() 或 buffer.compact() 清除缓冲区内容
Buffer的重要属性
-
capacity : 容量缓冲区的容量,是它所包含的元素的数量。不能为负并且不能更改。
-
position :缓冲区的位置 是下一个要读取或写入的元素的索引。不能为负,并且不能大于 limit
-
limit : 缓冲区的限制,缓冲区的限制不能为负,并且不能大于 capacity
flip():Buffer有两种模式,写模式和读模式。在写模式下调用flip()之后,Buffer从写模式变成读模式。
那么limit就设置成了position当前的值(即当前写了多少数据),postion会被置为0,以表示读操作从缓存的头开始读,mark置为-1。