Android で float[] を byte[] に変換しようとしています。stackoverflow に関する他の質問と回答を見てきましたが、どれも役に立たなかったため、独自のソリューションを実装することにしました。私が試した方法は次のとおりです。
byte[] data = some data;
ByteBuffer buffer = ByteBuffer.allocate(data.length);
buffer.put(data);
FloatBuffer fBuffer = buffer.asFloatBuffer();
float[] dataConverted = fBuffer.array();
ただし、例外:
java.lang.UnsupportedOperationException
at java.nio.ByteBufferAsFloatBuffer.protectedArray(ByteBufferAsFloatBuffer.java:128)
at java.nio.FloatBuffer.array(FloatBuffer.java:101)
行から:
float[] dataConverted = fBuffer.array();
投げられ続けますが、その理由はわかりません。この例外がスローされる理由を誰かが説明してくれませんか。それは大いに役立つでしょうか?