docs: @SuppressWarnings({"checkstyle:regexp", "checkstyle:magicnumber"})
  	public static void main(String[] args) throws IOException {
  		for (final String filename : args) {
  			final File file = new File(filename);
  			try (DBaseFileReader reader = new DBaseFileReader(file)) {
  				reader.readDBFHeader();
  				final List<DBaseFileField> fields = reader.readDBFFields();
  
  				System.out.println(Locale.getString(DBaseFileReader.class, "FILE_VERSION", reader.getDBFVersion())); //$NON-NLS-1$
  				System.out.println(Locale.getString(DBaseFileReader.class, "LAST_UPDATE", //$NON-NLS-1$
  						reader.getDBFLastUpdateDate()));
  				System.out.println(Locale.getString(DBaseFileReader.class, "CHARSET", reader.getDBFLanguage())); //$NON-NLS-1$
  				System.out.println(Locale.getString(DBaseFileReader.class, "FIELD_COUNT", //$NON-NLS-1$
  						reader.getDBFFieldCount()));
  				System.out.println(Locale.getString(DBaseFileReader.class, "RECORD_COUNT", //$NON-NLS-1$
  						reader.getDBFRecordCount()));
  				System.out.println(Locale.getString(DBaseFileReader.class, "RECORD_LENGTH", //$NON-NLS-1$
  						reader.getDBFRecordSize()));
  				System.out.println(Locale.getString(DBaseFileReader.class, "HEADER_LENGTH", //$NON-NLS-1$
  						reader.getDBFHeaderSize()));
  
  				System.out.println("------------------------------------------"); //$NON-NLS-1$
  				System.out.println(Locale.getString(DBaseFileReader.class, "FIELD_HEADER")); //$NON-NLS-1$
  
  				for (final DBaseFileField field : fields) {
  					System.out.println(Locale.getString(DBaseFileReader.class, "FIELD", //$NON-NLS-1$
  							columnize(field.getName(), 10),
  							(char) field.getType().toByte(),
  							field.getLength(),
  							field.getDecimalPointPosition()));
  				}
  
  				System.out.println("=========================================="); //$NON-NLS-1$
  
  				boolean first = true;
  
  				for (final AttributeProvider attrs : reader) {
  					if (first) {
  						first = false;
  					} else {
  						System.out.println("------------------------------------------"); //$NON-NLS-1$
  					}
  					for (final Attribute attr : attrs.attributes()) {
  						try {
  							System.out.println(Locale.getString(DBaseFileReader.class, "RECORD_VALUE", //$NON-NLS-1$
  									columnize(attr.getName(), 10),
  									attr.getValue(), attr.getType()));
  						} catch (InvalidAttributeTypeException e) {
  							System.out.println(Locale.getString(DBaseFileReader.class, "INVALID_ATTRIBUTE_TYPE",  //$NON-NLS-1$
  									columnize(attr.getName(), 10), attr.getType()));
  						} catch (AttributeNotInitializedException e) {
  							System.out.println(Locale.getString(DBaseFileReader.class, "ATTRIBUTE_NOT_INITIALIZED", //$NON-NLS-1$
  									columnize(attr.getName(), 10)));
  						}
  					}
  				}
  			}
  		}
  	}