基本用法 - 创建 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()
分配直接缓冲区