ByteBuffer学习

1、介绍

Java 标准库中的一个类,它提供了一种方便的方式来处理字节序列,支持将不同的 Java 基本数据类型转换为字节序列,并且支持大端字节序和小端字节序等不同的字节序。ByteBuffer 在网络编程、文件处理、加密解密、序列化反序列化等场景中都有广泛的应用。

2、如何创建

// 创建一个容量为10的ByteBuffer
ByteBuffer buffer = ByteBuffer.allocate(10);

通过静态的 allocate(int capacity) 方法,可以创建一个指定容量大小的 ByteBuffer 对象,如上所示,这里创建了一个容量为10的 ByteBuffer 对象。

3、操作

ByteBuffer 的 put() 方法可以将一个字节放入缓冲区,而 putXXX() 方法可以将不同类型(short、int、long、float、double等)的数据转换为字节序列放入缓冲区。

buffer.put((byte)1);        // 放入一个byte类型数据
buffer.putShort((short)2);  // 放入一个short类型数据
buffer.putInt(3);           // 放入一个int类型数据
buffer.putLong(4L);         // 放入一个long类型数据
buffer.putFloat(5.0f);      // 放入一个float类型数据
buffer.putDouble(6.0);      // 放入一个double类型数据

flip() 方法将缓冲区从写模式切换到读模式,同时重设缓冲区的指针位置,使得读写操作可以在正确的位置进行。

buffer.flip();

get() 方法返回缓冲区当前指针位置的字节,并将指针位置向后移动一个字节。

byte b = buffer.get();
short s = buffer.getShort(); // 获取一个short类型数据
int i = buffer.getInt();     // 获取一个int类型数据
long l = buffer.getLong();   // 获取一个long类型数据
float f = buffer.getFloat(); // 获取一个float类型数据
double d = buffer.getDouble(); // 获取一个double类型数据

capacity() 方法返回缓冲区的总容量,limit() 返回当前最大操作位置,remaining() 返回当前剩余操作位置。

int capacity = buffer.capacity();       // 缓冲区总容量
int limit = buffer.limit();             // 当前最大操作位置
int remaining = buffer.remaining();     // 当前剩余操作位置

position() 方法可以设置缓冲区当前指针位置,可以用于定位操作。

buffer.position(2);  // 将当前指针位置设置为2

clear() 方法将缓冲区清空,同时切换到写模式,重设指针位置。

buffer.clear();

其他方法

ByteBuffer 还提供了很多其他方法,如 hasArray() 判断是否使用数组作为缓冲区、array() 获取缓冲区数据数组等。后续看到其他的再记下来。。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

单一无趣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值