【Java NIO 简例】Buffer

一个人想着一个人 提交于 2020-01-21 12:42:55

 

.

原文:《Java NIO Buffer

Buffer 与 Channel 结合使用:从 Channel 读取数据到 Buffer,或 将 Buffer 中的 Channel 写入到 Buffer。

Buffer 内部就是一个内存块。NIO 将该内存块包装成一个 Buffer 对象,以方便对该内存块的操作。

Buffer 基本使用方法

将数据写入 Buffer

调用 buffer.flip() 方法

将 buffer 转换为读模式,内部游标指向头部,以便开始读取数据

从 Buffer 读取数据

调用 buffer.clear() 或 buffer.compact() 方法

clear() 会清除 buffer中的所有数据;

compact() 只清除 buffer 中已被读取过的数据,未被读取过的数据将被移到头部

示例:《Channel

 

Buffer 关键字段

Buffer 内部这就是一个数组(连续的内存块)。Buffer 有3个关键字段来辅助操作该内部数组。

capacity

buffer 的容量,表示buffer最多能存放多少数据

 

position

buffer 当前操作的位置。取值范围:[0, capacity-1]

写模式下,position 表示数据将被写入其指向的单元格,写完后 position 增加1;

读模式下,position 表示数据将读取自其指向的单元格,读完后 position 增加1。

 

limit

buffer 中能操作的最大数据量。

写模式下,limit 表示最多能写入 buffer 的数据量,其值与 capacity 相等;

读模式下,limit 表示最多能从 buffer 中读取的数据量

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!