我有一个由 Delphi 记录组成的二进制文件。记录如下:
TRMapFileHeader = record
FileType: String[8];
Points: Int64;
Objects: Int64;
Text: Int64;
ObjLayers: byte;
TextLayers: byte;
end;
我想用 Java 阅读这个文件。我打开了文件:
DataInputStream file = new DataInputStream(new FileInputStream(filename))
然后我尝试读取数据:
for(int i = 0; i<8; i++)
System.out.print((char)file.readByte());
System.out.println();
System.out.println(file.readLong());
System.out.println(file.readLong());
System.out.println(file.readLong());
System.out.println(file.readByte());
System.out.println(file.readByte());
我有
而不是正确的数据,它们是:
RMF
441434
80457
14186
11
4
我尝试了不同的阅读方式,发现了下一个:
System.out.println(file.readByte());
for(int i = 0; i<3; i++)
System.out.print((char)file.readByte());
for(int i = 0; i<36; i++)
file.readByte();
System.out.println();
System.out.println(file.readByte());
System.out.println(file.readByte());
给出下一个输出: Eclipse 输出。第一个字节等于 3,然后是 3 个字符,然后是 36 个字节,然后是记录的最后 2 个参数
所以我想知道如何阅读这种记录