【发布时间】:2013-11-06 14:20:29
【问题描述】:
我正在尝试将 byte[] 转换为 float[],方法是将 byte[] 放入 ByteBuffer,将其转换为 FloatBuffer (.asFloatBuffer),然后将其转换为数组。
private static float[] toFloatArray(byte[] bytes) {
ByteBuffer buffer = ByteBuffer.wrap(bytes);
return buffer.asFloatBuffer().array();
}
但是运行:
byte[] bytes = {14,32,26,21};
toFloatArray(bytes);
给我一个java.lang.UnsupportedOperationException
at java.nio.FloatBuffer.array(Unknown Source)。
我相信文档说该错误与没有数组支持的缓冲区有关 (???)。
任何人都知道如何解决这个问题,或者我应该如何将此数组转换为浮点数?
【问题讨论】:
-
我很想您应该“更深入”并尝试以 float[] 而不是 byte[] 开头。除此之外,您可以在包装的缓冲区上调用 #getFloat() ,直到输入用完为止。
标签: java arrays exception byte buffer