Does Java read integers in little endian or big endian?

hhafez picture hhafez · Dec 12, 2008 · Viewed 116k times · Source

I ask because I am sending a byte stream from a C process to Java. On the C side the 32 bit integer has the LSB is the first byte and MSB is the 4th byte.

So my question is: On the Java side when we read the byte as it was sent from the C process, what is endian on the Java side?

A follow-up question: If the endian on the Java side is not the same as the one sent, how can I convert between them?

Answer

Egil picture Egil · Dec 12, 2008

Use the network byte order (big endian), which is the same as Java uses anyway. See man htons for the different translators in C.