作为更大程序的一部分,我需要读取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])+" ");
答案 0 :(得分:7)
如果您尝试读取原始字节,那么这不是您正在做的事情。
你正在使用一个读取字符的读取器(在你没有指定的编码中,因此它默认为某个东西,可能是UTF-8)。
要读取字节,请使用InputStream(不要将其包装在Reader中)。
答案 1 :(得分:0)
您也可以使用其他编码:
BufferedReader istream = new BufferedReader(new InputStreamReader(ist, "ISO-8859-15"));