Does anyone know how to convert ByteBuffer to byte[] array? I need to get byte array from my ByteBuffer
. When I run bytebuffer.hasArrray()
it returns no. Every question I looked so far is converting byte array to byteBuffer, but I need it other way around.
Thank you.
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
This question already has answers here:
Closed 4 years ago.
回答1:
ByteBuffer
exposes the bulk get(byte[])
method which transfers bytes from the buffer into the array. You'll need to instantiate an array of length equal to the number of remaining bytes in the buffer.
ByteBuffer buf = ...
byte[] arr = new byte[buf.remaining()];
buf.get(arr);
回答2:
If hasArray()
reports false
then, calling array()
will throw an exception.
In that case, the only way to get the data in a byte[]
is to allocate a byte[]
and copy the bytes to the byte[]
using get(byte)
or similar.