Shoikat Roy
Shoikat Roy

Reputation: 41

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 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])+" ");

Upvotes: 4

Views: 5794

Answers (2)

Ioannis Pappas
Ioannis Pappas

Reputation: 817

You may also use a different encoding:

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

Upvotes: 0

Thilo
Thilo

Reputation: 262534

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).

Upvotes: 7

Related Questions