将 ByteBuffer 转换为字节数组 java

Convert ByteBuffer to byte array java

有谁知道如何将 ByteBuffer 转换为 byte[] 数组?我需要从我的 ByteBuffer 中获取字节数组。当我运行bytebuffer.hasArray()它returns没有。到目前为止我看到的每个问题都是将字节数组转换为 byteBuffer,但我需要以其他方式解决。 谢谢。

如果hasArray()报告false那么,调用array()会抛出异常。

在这种情况下,获取 byte[] 中数据的唯一方法是分配 byte[] 并使用 get(byte) 或将字节复制到 byte[] 或相似。

ByteBuffer 公开了批量 get(byte[]) 方法,该方法将字节从缓冲区传输到数组中。您需要实例化一个长度等于缓冲区中剩余字节数的数组。

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