У меня проблема с чтением 32-битных значений с плавающей запятой из InputStream, полученного из API.
Формат файла описан в документации API как:
ширина x высота x nbFrames 32-битные значения давления с плавающей запятой, сохраняемые кадр за кадром и в основной строке
В настоящее время я читаю значения с плавающей запятой, как это
DataInputStream dis = new DataInputStream(is);
while (dis.available() > 0) {
byte[] float_val = new byte[4];
dis.readFully(float_val);
float f = ByteBuffer.wrap(float_val).order(ByteOrder.LITTLE_ENDIAN).getFloat();
System.out.println(f);
}
Поскольку ByteOrder не упоминается в документации, я предположил, что это будет Little Endian, так как я также тестировал Big Endian, но ценность, которую я получил, была слишком грязной, чтобы быть действительной. Однако, когда я показал значения с помощью Little Endian Byteorder, мой коллега, которому нужны значения из InputStream, указал, что значения, которые я получаю, «слишком малы» в смысле использования. Я спрашиваю, есть ли у вас, ребята, идея для другого подхода, читающего 32-битные значения с плавающей запятой в Java?