将平面文件转换为Java对象

有人知道将平面文件转换为Java对象的任何好库吗? 我发现扁虫,但我正在寻找替代品。

FFP – 平面文件解析库
http://jffp.sourceforge.net/

快速更新:扁虫已经活跃了很长一段时间,有一个名为BeanIO的分支: http : //www.beanio.org/

我写的另一个使用Java Annotations的替代方案是JFileHelpers – http://jfilehelpers.com

注释bean的示例:

@FixedLengthRecord() public class Customer { @FieldFixedLength(4) public Integer custId; @FieldAlign(alignMode=AlignMode.Right) @FieldFixedLength(20) public String name; @FieldFixedLength(3) public Integer rating; @FieldTrim(trimMode=TrimMode.Right) @FieldFixedLength(10) @FieldConverter(converter = ConverterKind.Date, format = "dd-MM-yyyy") public Date addedDate; @FieldFixedLength(3) @FieldOptional public String stockSymbol; } 

那么你所要做的就是:

  FileHelperEngine engine = new FileHelperEngine(Customer.class); List customers = new ArrayList(); customers = engine.readResource( "/samples/customers-fixed.txt"); 

您也可以试试Fixedformat4j 。 我喜欢注释方法,定义自定义字段格式非常简单。

您想要考虑JRecordBind (我是它的作者)

与其他人不同,它既可以解析也可以创建平面文件,它使用纯XML Schema(因此您不必学习另一种配置语法)。 一些用户回收相同的XSD以生成web服务和平面文件输出。

ps:我最近把代码移到了github

我没有使用过这个JFlat ,但似乎这个Framework提供了从Flat文件到Java对象的转换。

同样, BeanIO和Jsefa也提供了一个简单而灵活的API。

您可以尝试使用FlatPack – 但它是旧的,文档不如JFlat或BeanIO

Apache Camel有Flatpack组件以及2.10它有BenaIO组件