spring-boot - 如何为每个块创建多个文件(csv)?
问题描述
嗨,我是 Spring Batch 的新手,我想为每个处理的块创建多个文件(csv)。FileName 类似于 timestamp.csv。知道我该怎么做吗?基本上它是将一个大文件拆分为较小的文件。
谢谢!
解决方案
CSV 文件基本上是最后带有换行符的文本文件。
因此,就将大 CSV 文件拆分为较小的文件而言,您只需在 Java 中逐行读取大文件,当您的读取行数达到阈值计数/每个小文件的最大计数(10、100、1000 等) ,您可以根据需要创建一个具有命名约定的新文件并在那里转储数据。
BufferedReader
是逐行读取文本文件的主要类。
实现此逻辑与 Spring Batch 无关,但可以使用 Java 或使用 OS 级别的命令。
因此,您有两个不同的逻辑部分,逐行读取大文件并创建 csv ...您可以将这两个部分开发为单独的组件,并根据您的业务需求将其插入 Spring Batch Framework 的适当位置。
有一个 java 库可以轻松处理 CSV 文件,您可能喜欢使用它 - 取决于所涉及的复杂性。
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>4.6</version>
</dependency>
推荐阅读
- c - 将第二个字符串放在第一个字符串上用户输入的位置
- reactjs - 在 React JS 组件中设置默认状态值的简单方法
- tensorflow - 在训练期间监控权重稀疏度
- php - 文件“phinx.yml”不存在
- node.js - 在 Node.js 中使用不同的方法发出多个 Https 请求
- jquery - jquery 在新创建的 mvc 项目的索引页面上不起作用
- supervisord - 当我使用 supervisorctl stop [running-program] 时会发生什么?
- cmd - 我可以在 cmd 中打开一个 pdf 名称中带有“空格”的 pdf 吗?
- json - 如何仅从 json 中获取值以输入 ng-2 图表?
- python - 具有标准 Tensorflow 的 Tensor Flow Lite 模型