有谁知道如何将ByteBuffer转换为byte []数组?我需要从ByteBuffer
获取字节数组。当我运行bytebuffer.hasArrray()
时,它返回no。到目前为止我看到的每个问题都是将字节数组转换为byteBuffer,但我还需要其他方法。
谢谢。
答案 0 :(得分:52)
ByteBuffer
公开了批量get(byte[])
方法,该方法将字节从缓冲区传输到数组中。您需要实例化一个长度等于缓冲区中剩余字节数的数组。
ByteBuffer buf = ...
byte[] arr = new byte[buf.remaining()];
buf.get(arr);
答案 1 :(得分:2)
如果hasArray()
报告false
,则调用array()
将引发异常。
在这种情况下,获取byte[]
数据的唯一方法是分配byte[]
并使用byte[]
或类似方法将字节复制到get(byte)
。