java - 在批处理作业中的 Spring Batch Processor 中生成新项目/CSV-Rows
问题描述
摘要:我需要导出一些带有在批量导出期间生成的行的 CSV 文件。
我已经有一个 JdbcItemreader 可以从我的数据库中获取数据。处理器将 OutputData 格式化为所需的格式。我确实有一个编写 CSV 文件的基本 FlatFileItemWriter
这就是我导出的 CSV 行的样子:
040010;0006765;0001420;0008014;+00000018,00;+00000000,00;+00000018,00;+00000000,00;m06;100220;000014;030;CNAME;30;32
040010;0006765;0001420;0008014;+00000018,00;+00000000,00;+00000018,00;+00000000,00;m06;100220;000014;030;CNAME;30;32
我知道这些行看起来很难看,但这是其他 CSV 导入器的要求。现在我需要计算“总和线”并将它们添加到具有相同 ID 的两行之前。计算出的“总和线”应如下所示:
040010;0006765;0001420;0008014;+00000036,00;+00000000,00;+00000036,00;+00000000,00;m06;100220;000014;030;CNAME;30;31
所以最终的输出应该是这样的:
040010;0006765;0001420;0008014;+00000036,00;+00000000,00;+00000036,00;+00000000,00;m06;100220;000014;030;CNAME;30;31
040010;0006765;0001420;0008014;+00000018,00;+00000000,00;+00000018,00;+00000000,00;m06;100220;000014;030;CNAME;30;32
040010;0006765;0001420;0008014;+00000018,00;+00000000,00;+00000018,00;+00000000,00;m06;100220;000014;030;CNAME;30;32
这是我的问题:
- 是否可以通过 FlatFileItemWriter 在 CSV 文件中的其他行之间添加行?还是我应该在写文件之前生成总和行?
- 是否有可能访问 ItemWriter / Processor 中的完整数据块?这样我就可以在将新行写入文件之前将它们添加到块中吗?
解决方案
推荐阅读
- c++ - 在 C++ 中初始化对象中的数组
- javascript - 如何在导入的接口内向已声明函数的参数类型添加属性?TS2322
- express - 根域上设置的 Cookie 对子域不可用 - 我做错了什么?
- regex - 如何在PowerShell中使用正则表达式查找和替换一些文本?
- python - 显示更改表单字典
- javascript - 只有此循环的第一部分有效(JavaScript)
- python - Python,从mysql中删除行不起作用
- javascript - 使用点击事件识别子元素
- graph - 是否可以使用 graph.microsoft.com 更新用户的用户名?
- javascript - 如何分离并保存合并在单个文件中的html文件