code: public int readUInt16() throws IOException {
          int b1 = in.read();
          if (b1 < 0) {
              return 0;
          }
          int b2 = in.read();
          if (b2 < 0) {
              throw new IOException("Missing byte 2 to read uint16");
          }
          return unshift2bytes(b1, b2);
      }
docs: Read an unsigned short from the input stream.
  
  @return The number read.
  @throws IOException If no number to read.