java - Spring-Batch:将对象写入固定长度的行?

标签 java spring spring-batch batch-processing

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);

我想做完全相反的事情。我想将一个对象写入一个平面文件,其中不同的字段应该以固定长度写入文件中。 Spring-Batch 提供接口(interface)org.springframework.batch.item.file.transform.LineAggregator用于将线映射到对象。但我想知道为什么没有FixedLengthLineAggregator这样做?

Spring-Batch 中将对象写入字段具有固定长度的行的正确方法是什么?

最佳答案

正如@canillas 在他们的评论中指出的那样,管理这个的方法是通过 Spring Batch 的 FormatterLineAggregator .使用 String.format 的格式功能可以允许您以跨 JVM 和框架独立的标准方式生成固定长度的记录。

关于java - Spring-Batch:将对象写入固定长度的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47325636/

相关文章:

java - Spring批量分区: Slave step with multiple steps

spring-batch - Spring Batch Javaconfig - 参数化提交间隔又名 block 大小

java - 根据线程记录到不同的文件

java - 为带注释的 MyBatis 插入指定类型处理程序

spring - 无法将 Spring Security @Secured Annotation 导入 Grails 3

java - 使用 TaskExecutor 时出现 AssertionError

spring-batch - Spring Batch Admin - 实例化 Bean 'jobService' 时出错

java - 为什么通过jdbc连接mysql时不能静态加载sql Driver类?

字符串数组上的 Java 8 流

java - Spring Boot MVC 应用程序中的无效 session (注销)