The code below expects that you can create a character from a number. It’s already bad technically: int is signed, while char is unsigned (a char is just 16 bits of UTF-16 encoded Unicode).
Int i = in.read();Char c = (char) i;
In Java, use Reader/Writer or CharsetDecoder instead, to convert between characters and their byte representation.