将字节缓冲器转换为字节数组 java

2022-08-31 20:06:24

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


答案 1

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

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

答案 2

如果报告,则调用将引发异常。hasArray()falsearray()

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