首页 > 解决方案 > 如何为每个块创建多个文件(csv)?

问题描述

嗨,我是 Spring Batch 的新手,我想为每个处理的块创建多个文件(csv)。FileName 类似于 timestamp.csv。知道我该怎么做吗?基本上它是将一个大文件拆分为较小的文件。

谢谢!

标签: spring-bootspring-batch

解决方案


CSV 文件基本上是最后带有换行符的文本文件。

因此,就将大 CSV 文件拆分为较小的文件而言,您只需在 Java 中逐行读取大文件,当您的读取行数达到阈值计数/每个小文件的最大计数(10、100、1000 等) ,您可以根据需要创建一个具有命名约定的新文件并在那里转储数据。

如何使用 Java 逐行读取大文本文件?

BufferedReader是逐行读取文本文件的主要类。

实现此逻辑与 Spring Batch 无关,但可以使用 Java 或使用 OS 级别的命令。

因此,您有两个不同的逻辑部分,逐行读取大文件并创建 csv ...您可以将这两个部分开发为单独的组件,并根据您的业务需求将其插入 Spring Batch Framework 的适当位置。

有一个 java 库可以轻松处理 CSV 文件,您可能喜欢使用它 - 取决于所涉及的复杂性。

<dependency>
        <groupId>com.opencsv</groupId>
        <artifactId>opencsv</artifactId>
        <version>4.6</version>
</dependency>

推荐阅读