我正在使用Java从SNES ROM读取数据。我打开了一个流并将字节读入数组:
InputStream stream = open("foo.rom");
final int startingSize = stream.available();
byte[] data = new byte[startingSize];
final int numberRead = stream.read(data, 0, startingSize);
在ROM中,我有这个值:
E4 2B 00 02 03 00 FF 3A 00 83
228 43 0 2 3 0 255 58 0 131 (十进制)
然而,我的代码表现出奇怪的行为。设置了一些调试语句后,当使用String.valueOf(data[ref])打印时,我得到了这样一个模式:
-28 43 0 2 3 0 -1 58 0 -125
(这个地址在ROM中是数据第一次出现的地方,但我注意到程序其他地方出现了不正确的值)
据我所知,我的Java字节数组没有遵守十六进制数据。我该如何设置我的字节数组来遵守十六进制数据?
available()
的方式使用它。 - user207421