Découpage des tableaux d'octets en Java

Je suis en train de découper un tableau d'octets à tailler la première partie du tableau. Je suis en utilisant ByteBuffer mais il ne se comporte pas comme je m'attends.

byte[] myArray = new byte[10];
ByteBuffer buf = ByteBuffer.wrap(myArray);
buf.position(5);
ByteBuffer slicedBuf = buf.slice();
byte[] newArray = slicedBuf.array();

J'attendrais la taille de newArray à 5, contenant uniquement la dernière partie de mon ByteBuffer. Au lieu de cela, la pleine tableau d'octets est retourné. Je comprends que c'est parce que la "sauvegarde de la mémoire tampon" est la même tout le long.

Comment puis-je tranche pour n'avoir que la partie souhaitée de la matrice?

EDIT: Ajouté contexte

Les octets sont reçues à partir du réseau. Le tampon est constitué comme ceci :

[ SHA1 hash ] [ data... lots of it ]

J'ai déjà une fonction qui prend un tableau d'octets en tant que paramètre et de calculer le hash SHA1. Ce que je veux, c'est à couper le tampon complète à ne laisser passer que les données sans attendre de hachage.

source d'informationauteur Eric