code: public Object[] nextRecord() {
          try {
              int nextByte;
              do {
                  nextByte = dataInput.readByte();
                  if (nextByte == DATA_ENDED) {
                      return null;
                  } else if (nextByte == DATA_DELETED) {
                      dataInput.skipBytes(header.getRecordLength() - 1);
                  }
              } while (nextByte == DATA_DELETED);
  
              Object recordObjects[] = new Object[header.getFieldsCount()];
              for (int i = 0; i < header.getFieldsCount(); i++) {
                  recordObjects[i] = readFieldValue(header.getField(i));
              }
              return recordObjects;
          } catch (EOFException e) {
              return null; // we currently end reading file
          } catch (IOException e) {
              throw new DbfException("Cannot read next record form Dbf file", e);
          }
      }
docs: Reads and returns the next row in the Dbf stream
  
  @return The next row as an Object array.