code: public final int readUnsignedShortLE() throws IOException {
          int ch1 = this.read();
          int ch2 = this.read();
          if ((ch1 | ch2) < 0)
              throw new EOFException();
          return (ch2 << 8) + (ch1 << 0);
      }
docs: Reads an unsigned 16-bit number from this stream in little-endian order.
  This method reads
  two bytes from the stream, starting at the current stream pointer.
  If the bytes read, in order, are
  <code>b1</code> and <code>b2</code>, where
  <code>0&nbsp;&lt;=&nbsp;b1, b2&nbsp;&lt;=&nbsp;255</code>,
  then the result is equal to:
  <blockquote><pre>
  (b2 &lt;&lt; 8) | b1
  </pre></blockquote>
  <p>
  This method blocks until the two bytes are read, the end of the
  stream is detected, or an exception is thrown.
  
  @return     the next two bytes of this stream, interpreted as an
  unsigned 16-bit integer.
  @exception  EOFException  if this stream reaches the end before reading
  two bytes.
  @exception  IOException   if an I/O error occurs.