I have a binary file that I read byte by byte.
I come across a section that is 8 bytes long, holding a double precision float (little endian). I can't figure out how to read this in and calculate it properly with masking and/or casting.
(To be specific, the file type is .LAS, but that shouldn't matter).
Are there any Java tricks?
You can use ByteBuffer
from a byte[] bytes
double d = ByteBuffer.wrap(bytes).order(ByteOrder.LITTLE_ENDIAN ).getDouble();
from a Socket
ByteBuffer bb = ByteBuffer.allocate(64*1024).order(ByteOrder.LITTLE_ENDIAN );
socket.read(bb);
bb.flip();
double d = bb.getDouble();