char readCharLittleEndian( ) { // get two component unsigned 2 bytes int low = readByte() & 0xff; int high = readByte(); // combine to unsigned return(char)( high << 8 | low ); // rem in JDK 1.5+ you can say: // return Char.reverseBytes( c ); }