web-dev-qa-db-fra.com

Convertir ByteBuffer en tableau d'octets java

Quelqu'un sait-il comment convertir ByteBuffer en tableau d'octets []? J'ai besoin d'obtenir un tableau d'octets de mon ByteBuffer. Lorsque j'exécute bytebuffer.hasArrray(), elle renvoie non. Chaque question que j'ai regardée jusqu'à présent convertit un tableau d'octets en byteBuffer, mais j'en ai besoin dans l'autre sens. Merci.

29
Powisss

ByteBuffer expose la méthode get(byte[]) qui transfère les octets du tampon dans le tableau. Vous devrez instancier un tableau de longueur égale au nombre d'octets restants dans le tampon.

ByteBuffer buf = ...
byte[] arr = new byte[buf.remaining()];
buf.get(arr);
57
nomis

Si hasArray() signale false alors, appeler array() lèvera une exception.

Dans ce cas, la seule façon d'obtenir les données dans un byte[] Est d'allouer un byte[] Et de copier les octets dans le byte[] En utilisant get(byte) ou similaire.

2
Stephen C