任何人都可以告诉我如何从二进制文件中获取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();
提前感谢。
答案 0 :(得分:1)
有很多可能的整数和双重表示。因此,您根本不能指望DataInputStream与任何奇怪的二进制格式兼容。您必须仔细阅读.AMF文件格式的规范并进行自己的转换。
答案 1 :(得分:0)
C ++和Java整数类型没有区别。它们都是带符号的32位数字类型。但是,它的二进制表示可能会有所不同,具体取决于byte order。例如,整数可能以小端字节顺序在文件中表示,并且假设它是大端字节将读取它将导致错误的数据。如果您不确切知道它在文件中的存储方式,您可能希望尝试字节顺序。看一下ByteBuffer Java类,它支持不同的字节顺序。