use*_*572 8 java arrays buffer byte exception
我试图通过将byte []放入ByteBuffer,将其转换为FloatBuffer(.asFloatBuffer),然后将其转换为数组,将byte []转换为float [] .
private static float[] toFloatArray(byte[] bytes) {
ByteBuffer buffer = ByteBuffer.wrap(bytes);
return buffer.asFloatBuffer().array();
}
Run Code Online (Sandbox Code Playgroud)
但运行:
byte[] bytes = {14,32,26,21};
toFloatArray(bytes);
Run Code Online (Sandbox Code Playgroud)
给我一个java.lang.UnsupportedOperationException
at java.nio.FloatBuffer.array(Unknown Source).我相信文档说错误与缓冲区没有数组支持(???).
任何人都知道如何解决这个问题,或者我应该如何将此数组转换为浮点数?
Fat*_*ton 10
private static float[] toFloatArray(byte[] bytes) {
ByteBuffer buffer = ByteBuffer.wrap(bytes);
FloatBuffer fb = buffer.asFloatBuffer();
float[] floatArray = new float[fb.limit()];
fb.get(floatArray);
return floatArray;
}
Run Code Online (Sandbox Code Playgroud)
例如:
byte[] bytes = {65,-56,0,0 , 65,-56,0,0};
float[] result = toFloatArray(bytes);
//print 25.0 25.0
System.out.println(Arrays.toString(result));
Run Code Online (Sandbox Code Playgroud)