我正在使用Java從SNES ROM讀取數據。我打開流和讀取中的字節到一個數組:在Java中將十六進制數據讀入字節數組?
InputStream stream = open("foo.rom");
final int startingSize = stream.available();
byte[] data = new byte[startingSize];
final int numberRead = stream.read(data, 0, startingSize);
在ROM,I具有此值:
E4 2B 00 02 03 00 FF 3A 00 83
228 43 0 2 3 0 255 58 0 131(十進制)
但是,我的代碼行爲異常。設置一些調試語句後,我有這種圖案與將String.valueOf打印時(數據[參考]):
-28 43 0 2 3 0 -1 0 58 -125
(此地址在ROM中是第一個出現數據的地方,但我注意到程序中其他地方的值不正確。)
就在我可以告訴我的Java字節數組並不尊重十六進制數據。我怎樣才能設置我的字節數組呢?
Javadoc中有一個特定的警告,就是在這裏使用'available()'的方式。 – EJP 2017-10-12 09:16:58