我正在嘗試從一個程序中讀取一個二進制文件,該程序將一個日誌(各種)寫入一個dat文件,我已經合理地使用了Java的格式。我加載它像這樣:嘗試從二進制文件中讀取非Java基元
DataInputStream in = new DataInputStream(new FileInputStream("file.dat"));
System.out.println("Bytes skipped: " + in.skipBytes(4));
System.out.println(in.readLong());
的問題是從readLong()的價值是什麼,我期待不同,在十六車間我強調六角塊
BF02 0000
,並報告說,它是一個有效的簽名短/長號碼 - 但是輸出與我所期望的非常不同。看看Java Docs,它聲明它的類只有64位(8字節),而其他來源顯示帶符號的長整數應該是32位 - 是否有辦法解決這個問題?
乾杯,
湯姆
或整數。reverseBytes(),Long.reverseBytes()。至少他們是分類打字。 – akarnokd 2009-07-08 17:00:33