我正在尝试从将日志(各种)写入 dat 文件的程序中读取二进制文件,我已经很好地确定了使用 Java 的格式。我正在加载它:
DataInputStream in = new DataInputStream(new FileInputStream("file.dat"));
System.out.println("Bytes skipped: " + in.skipBytes(4));
System.out.println(in.readLong());
问题是 readLong() 的值与我期望的不同,在 Hex Workshop 我突出显示了十六进制块
BF02 0000
并报告它是一个有效的签名短/长数字 - 但是输出与我的预期非常不同。查看Java Docs,它声明它的类长为64位(8字节),而其他来源显示有符号长整数应该是32位 - 有没有办法解决这个问题?
干杯,
汤姆