有没有结合 ByteBuffer 和 FloatBuffer 的好方法?
例如,我获取 byte[]
数据,我需要将其转换为 float[]
数据,反之亦然:
byte[]
到 float[]
(java.lang.UnsupportedOperationException):
byte[] bytes = new bytes[N];
ByteBuffer.wrap(bytes).asFloatBuffer().array();
float[]
到 byte[]
(有效):
float[] floats = new float[N];
FloatBuffer floatBuffer = FloatBuffer.wrap(floats);
ByteBuffer byteBuffer = ByteBuffer.allocate(floatBuffer.capacity() * 4);
byteBuffer.asFloatBuffer().put(floats);
byte[] bytes = byteBuffer.array();
最佳答案
array()
是 ByteBuffer
和 FloatBuffer
的可选操作,仅在支持时才支持Buffer
实际上是在具有适当类型的数组之上实现的。
当您不知道缓冲区的实际实现方式时,请使用 get
将缓冲区的内容读入数组。
关于java - 将 ByteBuffer 与 FloatBuffer 结合起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11385596/