Вместо запуска с с FloatBuffer
, вы можете создать ByteBuffer
для записи в FileChannel
, затем использовать ByteBuffer.asFloatBuffer
, записать в FloatBuffer
, как в настоящее время делаете это, а затем запишите ByteBuffer
, который будет содержать соответствующую информацию?
Лично я всегда находил java.nio довольно запутанным, но кажется, что это должно работать ...
РЕДАКТИРОВАТЬ: Другой пользователь попробовал это, и обнаружил, что это не работает:
Однако asFloatBuffer()
не будет работать, потому что hasArray()
будет ложным. Короче, следующее не работает (ни allocate
, ни allocateDirect
не будет работать):
ByteBuffer.allocate(amount * 4).asFloatBuffer().asArray()
У меня нет времени сейчас исследовать альтернативы, к сожалению.