2010-08-05 80 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文件格式的規格並進行自己的轉換。