我如何读取java中的一系列字节并存储它们?

时间:2016-06-03 16:33:56

标签: java file-io binaryfiles

我正在尝试解析一个看起来像这样的数据文件头: 7B 01 2C 00 00 EA 60 2C 03 2C 56 其中所有值均为十六进制。 我目前正在使用扫描仪扫描,并执行以下操作:

if(scan.getNextByte()==0x7B) {do work}  

抛出inputMismatchException

Exception in thread "AWT-EventQueue-0" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Unknown Source)
    at java.util.Scanner.next(Unknown Source)
    at java.util.Scanner.nextByte(Unknown Source)
    at java.util.Scanner.nextByte(Unknown Source)

我认为我的问题是我在这里做错了什么,但我也很好奇,如果有更好的方法来做到这一点,那么我目前在做什么。我需要根据每个字节进行解析,这就是为什么我不能一次读取整行。

1 个答案:

答案 0 :(得分:0)

nextByte()需要一个十进制的字节(-128到127)。

我建议读一个单词并将其解析为十六进制。

int num = Integer.parseInt(scanner.next(), 16);

或者您可以使用

int num = scanner.nextInt(16);

这不是一个带符号的字节,因为我假设你期望FF == 255而不是-1。