code: public static void readFileChannelFully( FileChannel fileChannel, byte buf[],
        int off, int len ) throws IOException {
      ByteBuffer byteBuffer = ByteBuffer.wrap(buf, off, len);
      readFileChannelFully(fileChannel, byteBuffer, off, len, true);
    }
docs: Reads len bytes in a loop using the channel of the stream
  @param fileChannel a FileChannel to read len bytes into buf
  @param buf The buffer to fill
  @param off offset from the buffer
  @param len the length of bytes to read
  @throws IOException if it could not read requested number of bytes
  for any reason (including EOF)