Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring批处理,在逐行读取之前读取整个csv文件_Spring_Spring Batch - Fatal编程技术网

Spring批处理,在逐行读取之前读取整个csv文件

Spring批处理,在逐行读取之前读取整个csv文件,spring,spring-batch,Spring,Spring Batch,我想读取一个csv文件,用来自其他外部系统的数据充实每一行,然后将新的充实csv写入某个目录 现在,为了从外部系统获取数据,我需要逐个传递每一行,并从外部系统获取新的列。 但要用每一行查询外部系统,我需要通过发送特定列的所有值来传递从外部系统获得的值。 e、 g-我的csv文件是- 姓名、价值、年龄 10,v1,12 11,v2,13 因此,为了充实这一点,我首先需要根据总年龄获取一个值,即12+13,然后从外部系统获取值总和,然后我需要将每行的总和发送到外部系统以获取充实值。 我使用sprin

我想读取一个csv文件,用来自其他外部系统的数据充实每一行,然后将新的充实csv写入某个目录 现在,为了从外部系统获取数据,我需要逐个传递每一行,并从外部系统获取新的列。 但要用每一行查询外部系统,我需要通过发送特定列的所有值来传递从外部系统获得的值。 e、 g-我的csv文件是-

姓名、价值、年龄

10,v1,12

11,v2,13

因此,为了充实这一点,我首先需要根据总年龄获取一个值,即12+13,然后从外部系统获取值总和,然后我需要将每行的总和发送到外部系统以获取充实值。 我使用spring批处理,但使用fLatFileReader一次只能读取一行。在此之前,我将如何引用整个专栏

请帮忙


谢谢

有两种方法可以做到这一点

选项1

如果您愿意将所有记录存储在内存中,请选择此选项。完全取决于计算总年龄所需的记录数

读卡器(自定义读卡器): 将逻辑写入一次读取一行。 只有当您觉得所有行都已读取以计算总年龄时,才需要从read()返回null

注意:-读取器将循环read()方法,直到它返回null

处理器:您将获得完整的记录列表。计算总年龄。 连接外部系统并获取值。形成需要书写的记录,并从过程方法返回

注意:-您可以返回由特定字段修改的所有记录或合并单个记录。这完全是你的选择,你想做什么

编写器:编写记录

选项2

如果选项1不可行,请选择此选项

步骤1:读取所有行,计算总年龄,并将值传递到下一步

第2步:再次读取所有行,并使用所需更新更新更新记录,然后写入相同的内容