1、Buffer
定义:一个用于特定基本类型的容器。
2、ByteBuffer
java.lang.Object
ava.nio.Buffer
java.nio.ByteBuffer
- 定义:字节缓冲区
- 创建:
static allocate(int capacity);
ByteBuffer.allocateDirect(int capacity); allocateDirect表现相对更好。
- 读写byte数据常用方法:
public abstract ByteBuffer put(byte b) 将给定的字节b写入此缓冲区的当前位置,然后该位置递增。
public abstract ByteBuffer put(int index,byte b) 参数:index - 将在该位置写入字节的索引,
b - 要写入的字节值.
public final ByteBuffer put(byte[] src) 将给定的源 byte 数组的所有内容传输到此缓冲区中。
public ByteBuffer put(byte[] src, 把给定源数组中的字节字传输到此缓冲区中。
src - 要从中读取字节的数组
int offset,
offset - 要读取的第一个字节在数组中的偏移量;必须为非负且不大于 array.length,
int length)
length - 要从给定数组读取的字节的数量;必须为非负且不大于 array.length - offset。
- 两个重要方法
Buffer clear() 把position设为0,把limit设为capacity,一般在把数据写入Buffer前调用。
Buffer flip() 把limit设为当前position,把position设为0,一般在从Buffer读出数据前调用。