code: public void seekToRecord(int n) {
          if (!canSeek()) {
              throw new DbfException("Seeking is not supported.");
          }
          if (n < 0 || n >= header.getNumberOfRecords()) {
              throw new DbfException(String.format("Record index out of range [0, %d]: %d",
                      header.getNumberOfRecords(), n));
          }
          long position = header.getHeaderLength() + n * header.getRecordLength();
          try {
              ((RandomAccessFile) dataInput).seek(position);
          } catch (IOException e) {
              throw new DbfException(
                      String.format("Failed to seek to record %d of %d", n, header.getNumberOfRecords()), e);
          }
      }
docs: Attempt to seek to a specified record index. If successful the record can be read
  by calling {@link DbfReader#nextRecord()}.
  
  @param n The zero-based record index.