面对从二进制文件获取double和int值的问题

时间:2010-08-05 12:27:24

标签: java android

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

InputStream iStream = getApplicationContext().getResources().openRawResource(R.raw.map);

    DataInputStream input;

        input = new DataInputStream(iStream);   

            try {                   

double mapFileFormatVersionNumber, IntendedSoftwareVersion;         
int DemoDays;

mapFileFormatVersionNumber =input.readDouble();                     
IntendedSoftwareVersion = input.readDouble();
DemoDays = input.readInt();

提前感谢。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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