我正在读取一个二进制文件,其中数值数据以 16 位形式存储。当这个文件被读取视觉 c++ 程序时,它工作正常,但是当我使用下面的 java 代码时,我无法得到想要的结果,并且输出似乎是垃圾值。我正在使用RandomAccessFile
你可以看到的。但我得到了绝对荒谬的价值观。还有一件事,我在这个文件中存储了浮点值,但即使我使用readFloat()
, or readInt()
or readShort()
,我也无法得到想要的结果。请指出我哪里出错了。 文件中的前 10 个字节: 01100000 00000000 00100011 00100000 11000000 00100011 11000001 00100010 10111111 00100001 。谢谢大家给我们时间
public class Test {
public static void main(String[] args) throws IOException {
RandomAccessFile data = new RandomAccessFile("D:\\RawEEGData.bin","r");
try {
while(data != null) {
// i have tried readFloat(), readShort() and readInt()
// but none of them seems to be working
float myInt16 = data.readFloat();
System.out.printf(" %f\n", myInt16);
}
} finally {
if (data != null) { data.close(); };
}
}
}