code: public static String readDbfInfo(File dbf) {
          try (DataInputStream in = new DataInputStream(new BufferedInputStream(new FileInputStream(dbf)))) {
              DbfHeader header = DbfHeader.read(in);
              StringBuilder sb = new StringBuilder(512);
              sb.append("Created at: ")
                      .append(header.getYear()).append('-').append(header.getMonth())
                      .append('-').append(header.getDay()).append('\n')
                      .append("Total records: ").append(header.getNumberOfRecords()).append('\n')
                      .append("Header length: ").append(header.getHeaderLength()).append('\n')
                      .append("Columns: ").append('\n');
  
              sb.append("  ").append(rightPad("#", INDEX_WIDTH, ' '))
                      .append(rightPad("Name", NAME_WIDTH, ' '))
                      .append(rightPad("Type", TYPE_WIDTH, ' '))
                      .append(rightPad("Length", LENGTH_WIDTH, ' '))
                      .append(rightPad("Decimal", DECIMAL_WIDTH, ' '))
                      .append('\n');
  
              int totalWidth = INDEX_WIDTH + NAME_WIDTH + TYPE_WIDTH + LENGTH_WIDTH + DECIMAL_WIDTH + 2;
              for (int i = 0; i < totalWidth; i++) sb.append('-');
  
              for (int i = 0; i < header.getFieldsCount(); i++) {
                  DbfField field = header.getField(i);
                  sb.append('\n')
                          .append("  ").append(rightPad(String.valueOf(i), INDEX_WIDTH, ' '))
                          .append(rightPad(field.getName(), NAME_WIDTH, ' '))
                          .append(rightPad(String.valueOf((char) field.getDataType().byteValue), TYPE_WIDTH, ' '))
                          .append(rightPad(String.valueOf(field.getFieldLength()), LENGTH_WIDTH, ' '))
                          .append(rightPad(String.valueOf(field.getDecimalCount()), DECIMAL_WIDTH, ' '));
              }
  
              return sb.toString();
          } catch (IOException e) {
              throw new DbfException("Cannot read header of .dbf file " + dbf, e);
          }
      }
docs: Create string with dbf information:
  - creation date
  - total records count
  - columns info
  @param dbf  .dbf file
  @return  string with dbf information