code: public int read(byte b[], int off, int len) throws IOException {
          return IOUtils.read(inStream, b, off, len);
      }
docs: Same as above but does not throw an exception at end of file, just
  returns the actual data read.
  
  @param b the buffer to bill
  @param off offset in buffer where to start filling
  @param len how many bytes we should read
  @return the total number of bytes read
  @throws IOException if a read error occurs