将ByteBuffer转换为字节数组java

时间:2015-02-26 13:44:11

标签: java arrays bytearray bytebuffer

有谁知道如何将ByteBuffer转换为byte []数组?我需要从ByteBuffer获取字节数组。当我运行bytebuffer.hasArrray()时,它返回no。到目前为止我看到的每个问题都是将字节数组转换为byteBuffer,但我还需要其他方法。 谢谢。

2 个答案:

答案 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)