Java reading hex file
As part of a larger program, I need to read values from a hex file and print the decimal values. It seems to be working fine; However all hex values ranging from 80 to 9f are giving wrong values. for example 80 hex gives a decimal value of 8364 Please help.
this is my code :
String filename = "pidno5.txt";
FileInputStream ist = new FileInputStream("sb3os2tm1r01897.032");
BufferedReader istream = new BufferedReader(new InputStr开发者_运维技巧eamReader(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])+" ");
If you were trying to read raw bytes this is not what you are doing.
You are using a Reader, which reads characters (in an encoding you did not specify, so it defaults to something, maybe UTF-8).
To read bytes, use an InputStream (and do not wrap it in a Reader).
You may also use a different encoding:
BufferedReader istream = new BufferedReader(new InputStreamReader(ist, "ISO-8859-15"));
精彩评论