Java读取hex文件

时间:2011-06-14 11:22:23

标签: java file-io hex

作为更大程序的一部分,我需要读取hex文件中的值并打印十进制值。 它看起来工作正常;但是,从80到9f的所有十六进制值都给出了错误的值。 例如,80 hex表示十进制值为8364 请帮忙。

这是我的代码:

String filename = "pidno5.txt";
FileInputStream ist = new FileInputStream("sb3os2tm1r01897.032");       
BufferedReader istream = new BufferedReader(new InputStreamReader(ist));
int b[]=new int[160];       
for(int i=0;i<160;i++)
    b[i]=istream.read();
for(int i=0;i<160;i++)
    System.out.print((b[i])+" ");

2 个答案:

答案 0 :(得分:7)

如果您尝试读取原始字节,那么这不是您正在做的事情。

你正在使用一个读取字符的读取器(在你没有指定的编码中,因此它默认为某个东西,可能是UTF-8)。

要读取字节,请使用InputStream(不要将其包装在Reader中)。

答案 1 :(得分:0)

您也可以使用其他编码:

BufferedReader istream = new BufferedReader(new InputStreamReader(ist, "ISO-8859-15"));