Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将ByteBuffer转换为字节数组java_Java_Arrays_Bytebuffer - Fatal编程技术网

将ByteBuffer转换为字节数组java

将ByteBuffer转换为字节数组java,java,arrays,bytebuffer,Java,Arrays,Bytebuffer,有人知道如何将ByteBuffer转换为byte[]数组吗?我需要从我的ByteBuffer中获取字节数组。当我运行bytebuffer.hasArray()时,它返回否。到目前为止,我看到的每个问题都是将字节数组转换为bytebuffer,但我需要它的另一种方式。 谢谢。如果hasArray()报告false则调用array()将引发异常 在这种情况下,获取byte[]中数据的唯一方法是分配byte[]并使用get(byte)或类似方法将字节复制到byte[]中。ByteBuffer公开将字节

有人知道如何将ByteBuffer转换为byte[]数组吗?我需要从我的
ByteBuffer
中获取字节数组。当我运行
bytebuffer.hasArray()
时,它返回否。到目前为止,我看到的每个问题都是将字节数组转换为bytebuffer,但我需要它的另一种方式。 谢谢。

如果
hasArray()
报告
false
则调用
array()
将引发异常


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

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

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

您是否尝试过byteBuffer.array()?@JohnnyWiller-它将失败。。。hasArray正在返回
false
。是的,我返回了,但没有成功。确定。。我认为nomis的答案会起作用:)只有代码的anwers通常会通过添加一些文本来解释代码在做什么来改进-你能添加一些文本来解释OP吗?别忘了调用buf.rewind(),否则buf.remaining()将返回不正确的值hi,buf.get(arr)仍然返回ByteBuffer,还有其他选择吗?这不是将ByteBuffer转换为字节数组。它仍然返回ByteBuffer。@请参见Tharamanitmr-字节正在填充到“arr”变量中,而不是返回值。