A fast, type-safe, language-agnostic compliant Java library for parsing, formatting, and generating Fixed Width Files (FWF).
Support for CharColumn, RightCharColumn, PositiveIntegerColumn, PositiveDecimalColumn, DateColumn, TimeColumn, and DateTimeColumn.
Compose header, details, and footer rows using HeaderRowDescriptor, DetailRowDescriptor, and FooterRowDescriptor.
Fully compatible with Python pyfwf hydration JSON formats and compliant with fwf-compliance-tests v1.0.0.
import io.github.kelsoncm.fwf.columns.*;
import io.github.kelsoncm.fwf.descriptors.*;
import io.github.kelsoncm.fwf.readers.Reader;
import java.util.List;
// 1. Define Columns
CharColumn nameCol = new CharColumn("name", 20);
PositiveIntegerColumn ageCol = new PositiveIntegerColumn("age", 3);
// 2. Define Descriptors
DetailRowDescriptor detail = new DetailRowDescriptor(List.of(nameCol, ageCol));
FileDescriptor fileDescriptor = new FileDescriptor(List.of(detail));
// 3. Read Content
String content = "KELSON MEDEIROS 045\n";
Reader reader = new Reader(content, fileDescriptor, "\n");
for (var row : reader) {
System.out.println("Name: " + row.get("name") + ", Age: " + row.get("age"));
}