docs: public char readChar() throws IOException {
          int byte1 = in.read();
          int byte2 = in.read();
  
          if (byte2 < 0) {
              throw new EOFException();
          }
  
          return (char) (((byte2 << 24) >>> 16) | ((byte1 << 24) >>> 24));
      }