Answer is simple
Java program expects file bytes in big-endian format, while C uses little
endian
2175 = > 00001000 01111111
so java will interpret after assuming it's big endian will be 01111111
00001000 => 32520
-Ashish
----- Original Message -----
From: "Joaquin Rapela" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, March 21, 2001 9:56 AM
Subject: readInt() & byte order
> Hello,
>
> I have a binary file containing short integers. I wrote a C program to
read
> the file and it works as expected. I wrote a java program to read the file
> using a DataInputStream and its readInt() method and it is reading the
short
> integers in inverted order Instead of a 2175 (100001111111) I get a 32520
> (111111100001000). To read the integers I read the following code:
>
> File inputFile = new File(filename);
> in = new DataInputStream(new FileInputStream(filename));
> short current = -1;
> current = in.readShort();
>
> Is there something wrong with this? Shall I use another method?
>
> Thanks in advance, Joaquin
----------------------------------------------------------------------
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]