基本用法 - 创建 ByteBuffer

有两种方法可以创建一个 ByteBuffer,其中一个可以再次细分。

如果你已经存在 byte[],你可以包装ByteBuffer 中以简化处理:

byte[] reqBuffer = new byte[BUFFER_SIZE];
int readBytes = socketInputStream.read(reqBuffer);
final ByteBuffer reqBufferWrapper = ByteBuffer.wrap(reqBuffer);

这将是处理低级网络交互的代码的可能性

如果你没有已经存在的 byte[],你可以在一个专门为缓冲区分配的数组上创建一个 ByteBuffer,如下所示:

final ByteBuffer respBuffer = ByteBuffer.allocate(RESPONSE_BUFFER_SIZE);
putResponseData(respBuffer);
socketOutputStream.write(respBuffer.array());

如果代码路径对性能至关重要且需要直接系统内存访问,则 ByteBuffer 甚至可以使用 #allocateDirect() 分配直接缓冲区