有谁知道如何将 ByteBuffer 转换为 byte[] 数组?我需要从我的 ByteBuffer
中获取字节数组。当我运行 bytebuffer.hasArray()
时,它返回否定结果。到目前为止我看到的每一个问题都是将字节数组转换为 ByteBuffer ,但我需要另一种方法。
有谁知道如何将 ByteBuffer 转换为 byte[] 数组?我需要从我的 ByteBuffer
中获取字节数组。当我运行 bytebuffer.hasArray()
时,它返回否定结果。到目前为止我看到的每一个问题都是将字节数组转换为 ByteBuffer ,但我需要另一种方法。
ByteBuffer
暴露了批量的get(byte[])
方法,它将字节从缓冲区传输到数组中。你需要实例化一个长度等于缓冲区剩余字节数的数组。
ByteBuffer buf = ...
byte[] arr = new byte[buf.remaining()];
buf.get(arr);
buf.rewind()
,否则buf.remaining()
会返回不正确的值。 - BoygeniusDexterbyte[] arr = new byte[ buf.position() ]; buf.rewind(); buf.get(arr)
- Grigory KhasArray()
返回false
,那么调用array()
将会抛出异常。byte[]
中的数据的唯一方法是分配一个byte[]
,并使用get(byte[])
或类似方法将字节复制到byte[]
中。
byteBuffer.array()
吗? - Johnny Willerfalse
。 - Stephen C