Spring-Batch提供了类FixedLengthTokenizer
,可以轻松地将单行的不同偏移读入对象的文件中。从而从具有固定长度的某些范围中提取每个字段的内容:
FixedLengthTokenizer tokenizer = new FixedLengthTokenizer();
String[] names = {"A", "B", "C", "D"};
tokenizer.setNames(names);
Range[] ranges = {new Range(1, 4), new Range(5, 12), new Range(13, 14), new Range(15, 15)};
tokenizer.setColumns(ranges);
我想做完确的对面。我想将一个Object写入一个平面文件,其中不同的字段应该写入具有固定长度的文件中。 Spring-Batch提供了用于将行映射到对象的接口org.springframework.batch.item.file.transform.LineAggregator
。但我想知道为什么没有FixedLengthLineAggregator
这样做?
在Spring-Batch中将对象写入行的正确方法是什么?字段具有固定的长度?
答案 0 :(得分:0)
正如@canillas在其评论中指出的那样,管理此问题的方法是通过Spring Batch的FormatterLineAggregator
。使用String.format
的格式化功能,可以使您以独立于JVM和独立于框架的标准方式生成固定长度的记录。