Java将字节数组索引范围重构为新的字节数组

时间:2019-06-13 04:10:59

标签: java arrays byte

我正在尝试从现有的字节数组创建一个全新的字节数组。我的existingBtyeArray从索引0-16开始有metadata1,索引从16-33开始有metadata2,然后其余的就被称为remaining,可以说它从索引33开始到100。现在字节数组的顺序如下:

existingBtyeArray = metadata1 (0 - 16) + metadata2 (16 - 33) + remaining (33 - 100)

我想将metadata2移动到保留在新字节数组中的末尾,如下所示:

newByteArray = metadata1 + remaining + metadata2

这怎么办?

1 个答案:

答案 0 :(得分:2)

这可以通过使用System.arraycopy复制一部分数组来完成。

public static byte[] reconstruct(byte[] arr){
    byte[] result = new byte[arr.length];
    System.arraycopy(arr, 0, result, 0, 16); //copy metadata1 
    System.arraycopy(arr, 33, result, 16, arr.length-33); //copy remaining 
    System.arraycopy(arr, 16, result, 16 + arr.length-33, 33-16); //copy metadata2 
    return result;
}