Я пытаюсь обрезать массив байтов, чтобы обрезать первую часть массива. Я использую ByteBuffer, но он не ведет себя так, как я ожидал.
byte[] myArray = new byte[10];
ByteBuffer buf = ByteBuffer.wrap(myArray);
buf.position(5);
ByteBuffer slicedBuf = buf.slice();
byte[] newArray = slicedBuf.array();
Я ожидаю, что размер newArray будет равен 5, содержащий только последнюю часть моего ByteBuffer. Вместо этого возвращается полный массив байтов. Я понимаю, что это потому, что "буфер поддержки" одинаковый.
Как я могу нарезать только нужную часть массива?
EDIT: Добавлен контекст
Байты принимаются из сети. Буфер формируется следующим образом:
[ SHA1 hash ] [ data... lots of it ]
У меня уже есть функция, которая принимает байтовый массив в качестве параметра и вычисляет хэш SHA1. Я хочу, чтобы нарезать полный буфер, чтобы передавать только данные без ожидаемого хэша.