ByteBuffer
是 Java NIO 中用于处理字节数据的缓冲区。它提供了一种高效的方式来读写数据,并且可以在不同的模式之间切换。下面是 ByteBuffer
使用方法的详细介绍以及示例代码。
ByteBuffer 基本方法
-
分配缓冲区
ByteBuffer.allocate(int capacity)
: 分配一个具有指定容量的字节缓冲区。
-
写入数据
put(byte b)
: 将一个字节写入缓冲区。put(byte[] src)
: 将一个字节数组写入缓冲区。putInt(int value)
: 将一个整数写入缓冲区。
-
读出数据
get()
: 读取一个字节。get(byte[] dst)
: 读取数据到字节数组。getInt()
: 读取一个整数。
-
模式切换
flip()
: 从写模式切换到读模式。rewind()
: 重置 position 为 0,但不改变 limit。clear()
: 清空缓冲区,准备重新写入。compact()
: 压缩缓冲区,将未读的数据移到缓冲区的开始。
-
其他方法
remaining()
: 返回未读数据的数量。hasRemaining()
: 判断是否还有未读的数据。
示例代码
以下是一个详细的示例代码,展示了如何使用 ByteBuffer
进行数据的写入和读取。
import java.nio.ByteBuffer;
public class ByteBufferExample {
public static void main(String[] args) {
// 分配一个容量为 256 字节的 ByteBuffer
ByteBuffer buffer = ByteBuffer.allocate(256);
// 写入数据到 ByteBuffer
buffer.put((byte) 10); // 写入一个字节
buffer.putIn