我正在使用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