cdm/src/main/java/ucar/unidata/io/RandomAccessFile.java
protected int read_(long pos, byte[] b, int offset, int len) throws IOException {
    file.seek(pos);
    int n = file.read(b, offset, len);
    if (debugAccess) {
      if (showRead)
        System.out.println(" **read_ " + location + " = " + len + " bytes at " + pos + "; block = " + (pos / buffer.length));
      debug_nseeks.incrementAndGet();
      debug_nbytes.addAndGet(len);
    }

    if (extendMode && (n < len)) {
      //System.out.println(" read_ = "+len+" at "+pos+"; got = "+n);
      n = len;
    }
    return n;
  }
protected int read_(long pos, byte[] b, int offset, int len) throws IOException {
    file.seek(pos);
    int n = file.read(b, offset, len);
    if (debugAccess) {
      if (showRead)
        System.out.println(" **read_ " + location + " = " + len + " bytes at " + pos + "; block = " + (pos / buffer.length));
      debug_nseeks.incrementAndGet();
      debug_nbytes.addAndGet(len);
    }

    if (extendMode && (n < len)) {
      //System.out.println(" read_ = "+len+" at "+pos+"; got = "+n);
      n = len;
    }
    return n;
  }
Read directly from file, without going through the buffer.
All reading goes through here or readToByteChannel;

@param pos    start here in the file
@param b      put data into this buffer
@param offset buffer offset
@param len    this number of bytes
@return actual number of bytes read
@throws IOException on io error