【Java NIO 简例】Buffer

 

.

原文:《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 中读取的数据量

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值