怎样理解Buffer类?Buffer类常用方法

Buffer类在JavaNIO中扮演重要角色,它像一个数组,有多种类型如ByteBuffer和CharBuffer。Buffer对象通过allocate()方法创建,有capacity、limit和position三个关键概念,分别表示容量、可读取的界限和当前写入或读取的位置。put()和get()方法用于数据的存取,支持单个或批量操作。
摘要由CSDN通过智能技术生成

从结构上来说,Buffer类似于一个数组,它可以保存多个类型相同的数据。从类型上来说,Buffer 是一个抽象类,其子类有 ByteBuffer、CharBuffer、DoubleBuffer、FloatBuffer、IntBuffer、LongBuffer 和 ShortBuffer,这些子类中最常用的是 ByteBuffer 和CharBuffer,其他则使用较少。

Buffer类的子类中并没有提供构造方法,因此不能通过构造方法来创建对象。要想创建Buffer 对象,通常会通过子类中的 static XxxBuffer allocate(int capacity)方法来实现,其中Xxx表示不同的数据类型,而 capacity 表示容量,此方法的含义是创建一个容量为capacity的XxxBuffer对象。例如创建一个容量为6的CharBuffer对象的语句如下:

CharBuffer buffer =CharBuffer,allocate(6);

在学习 Buffer的使用之前,需要对 Buffer中的三个重要概念有所理解,这三个概念分别是 capacity(容量) limit(界限)和position(位置),其含义如下。Ocapacity(容量):缓冲区的容量表示该Buffer的最大数据容量,即最多可以存储多少数据。缓冲区的容量值不能为负数,也不能够改变。

limit(界限):表示Buffer 容器中不可被读取的区域的第一个索引,即位于Buffer容器中索引为0到limit之间的区域都可以进行读取操作。缓冲区的 limit 值从不为负,也从不大于其容量。

position(位置):用于指定下一个可以被读写的缓冲区位置索引。新创建的 Buffe对象,position的默认值为0,每进行一次读取或写人操作position的值都会自动向后移动一步。如果向 Buffer 缓冲区中执行8次写人操作,那么position的值为8,即指向 Buffer中的第9个元素的索引位置。在 Buffer类中,定义了很多方法,其常见方法

 

除上表中的方法外,Buffer 的所有子类中都额外提供了 put()和 get()方法用于向hffer 中放人数据和取出数据。在使用 put()和 get()方法放入和取出数据时,Buffer 既支持单个数据的访问,也支持批量数据的访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值