java.nio.ByteBuffer
类有一个 ByteBuffer.array()
方法,但此方法返回的数组大小等于缓冲区容量而非已使用容量。因此,我遇到了一些问题。
我分配了一个指定大小的 ByteBuffer,并向其插入数据。
ByteBuffer oldBuffer = ByteBuffer.allocate(SIZE);
addHeader(oldBuffer, pendingItems);
newBuffer.flip();
oldBuffer.put(newBuffer);
// as of now I am sending everything from oldBuffer
send(address, oldBuffer.array());
我该如何仅发送oldBuffer
中正在使用的内容?是否有一行代码可以实现这个功能?
send()
方法以接受长度(和偏移量)或将实际的ByteBuffer
作为参数传递会更简单。您不应该像这样复制数据。 - user207421