2010-08-05 47 views
0

任何人都可以告诉我如何从二进制文件中获取double和int值。我尝试了很多,但它给了我错误的价值观。这是我的代码。从二进制文件中获取double和int值的问题

在此先感谢。

+0

该文件来自哪里?格式是什么? 'DataInputStream'文件告诉你* expected *格式 - 但大概这不是你实际文件的格式... – 2010-08-05 12:35:39

+0

我在RES中创建了一个名为Raw的文件夹,并把它放在我的文件中。和我的文件格式是.AMF(Anquet地图文件)。 – sajjoo 2010-08-05 12:36:53

+0

@sajjoo:你有链接到该文件类型的规范吗?它是否符合DataInputStream的预期格式? – 2010-08-05 12:44:28

回答

0

C++和Java整数类型没有区别。它们都是带符号的32位数字类型。但是,其二进制表示可能会有所不同,具体取决于byte order。例如,整数可能在文件中以小端字节顺序表示,并且假设它是大端文件,则读取它会导致错误的数据。如果您不确切知道它是如何存储在文件中的,您可能需要尝试字节顺序。看看ByteBuffer Java类,它支持不同的字节顺序。

1

有一个gazillion可能表示的整数和双打。因此,你不能指望DataInputStream与任何奇怪的二进制格式兼容。您必须仔细阅读.AMF文件格式的规格并进行自己的转换。