如何在java中打开hex文件?

时间:2013-03-12 18:14:55

标签: java file-io binary

所以我写了这个应该打开文件并将其输出到屏幕的小类。我的文件是hex文件,所以当我在记事本中打开它时,它会输出依赖于编码的随机字符。所以我想我必须首先将它转换为二进制然后输出(我想要它以二进制形式)。

然而,java在转换时给出了一个错误,并显示它被解释为文本。

怎么了?

类别:

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.*;


public class fileClass {

    private Scanner s;
    private String content;

    public void openFile(String fileName) {
        try {
            s = new Scanner(new FileReader(fileName));
            content = s.next();

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        finally{
            s.close();
        }
    }


    public String HexToBinary(String Hex) {
        int i = Integer.parseInt(Hex, 16);
        String Bin = Integer.toBinaryString(i);
        return Bin;
    }

    public void output() {
        System.out.println(HexToBinary(content));
    }
}

错误:

Exception in thread "main" java.lang.NumberFormatException: For input string: "tîxl¸?
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at fileClass.HexToBinary(fileClass.java:29)
    at fileClass.output(fileClass.java:36)
    at test.main(test.java:8)

1 个答案:

答案 0 :(得分:2)

请勿使用扫描仪或FileReader,因为它们是基于文本的。我想你只想读一个二进制文件,FileInputStream就足够了。