Java восстанавливает диапазоны индекса байтового массива в новый байтовый массив - PullRequest
0 голосов
/ 13 июня 2019

Я пытаюсь создать новый байтовый массив из существующего байтового массива. У моего existingBtyeArray есть metadata1 из индекса 0 - 16 и metadata2 из индекса 16 - 33, а затем оставшиеся просто будут называться remaining, допустим, он идет от индекса 33 до 100. Прямо сейчас байтовый массив это порядок так:

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

Я хотел бы переместить metadata2 в конец оставшегося в новом байтовом массиве, так что-то вроде этого:

newByteArray = metadata1 + remaining + metadata2

Как это можно сделать?

1 Ответ

2 голосов
/ 13 июня 2019

Это можно сделать с помощью 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;
}
...