我有一个由数组支持的现有 ByeBuffer。现在我想从这个 ByteBuffer 的偏移量到末尾获取一部分,然后将一些数据(存储在其他字节数组中)附加到这个切片的 ByteBuffer 的末尾。假设我在 ByteBuffer 中有“偏移量”和需要附加到 ByteBuffer 的字节数组“缓冲区”。这就是我现在正在做的 -
byte[] prevArray = previousByteBuffer.array();
byte[] newArray = new byte[prevArray.length-offset+buffer.length];
for(int i=offset; i<prevArray.length; i++){
newArray[i-offset] = prevArray[i];
}
for(int i=prevArray.length; i<(prevArray.length+len); i++){
newArray[i-offset] = buffer[i-prevArray.length];
}
ByteBuffer byteBuffer = ByteBuffer.wrap(newArray);
我认为我正在做的事情非常低效。实现这一目标的有效方法是什么?谢谢。
最佳答案
您可以使用 System.arraycopy。
我们的你可以使用
int len = prevArray.length-offset+buffer.length;
ByteBuffer bb = ByteBuffer.allocate(len);
bb.put(previousByteBuffer);
bb.put(buffer, offset, buffer.length - offset);
关于java - 切片 ByteBuffer 并将数据附加到它的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24855415/