code: public DBaseFileRecord readNextDBFRecord() throws IOException {
  		if (this.recordCount == -1) {
  			throw new MustCallReadHeaderFunctionException();
  		}
  		if (this.readingPosition >= this.recordCount) {
  			return null;
  		}
  
  		try {
  			// Update the readingPosition attribute AFTER the call to the
  			// reading function to avoid invalid usage of its value
  			// by this function.
  			final DBaseFileRecord record = readDBFRecord(this.readingPosition);
  			++this.readingPosition;
  			return record;
  		} catch (EOFException e) {
  			this.finished = true;
  			return null;
  		}
  	}
docs: Read the next record.
  
  @return the next record from the input stream or {@code null} if none.
  @throws IOException in case of error.
  @see #readNextAttributeProvider()