Java Spring批处理:如何解析一个horked CSV文件?

Java Spring批处理:如何解析一个horked CSV文件?,java,spring,spring-batch,Java,Spring,Spring Batch,Spring Batch中的一个常见任务是解析CSV文件,但CSV文件有各种形式和形状…其中一些语法错误。我目前正在尝试解析无效的CSV文件: 我的CSV文件data.CSV: "1;13/4/1992;16/7/2006" "2;31/5/1993;1/8/2009" "3;21/4/1990;27/4/2010" 我用了这个密码。 这对我有用,但我想使用我自己的CSV!有什么建议吗?正如我在您链接的答案的评论中所说,您可以使用FlatFileItemReader而不是ListItemRea

Spring Batch中的一个常见任务是解析CSV文件,但CSV文件有各种形式和形状…其中一些语法错误。我目前正在尝试解析无效的CSV文件: 我的CSV文件data.CSV:

"1;13/4/1992;16/7/2006"
"2;31/5/1993;1/8/2009"
"3;21/4/1990;27/4/2010"
我用了这个密码。
这对我有用,但我想使用我自己的CSV!有什么建议吗?

正如我在您链接的答案的评论中所说,您可以使用FlatFileItemReader而不是ListItemReader,它应该可以工作。我使用ListItemReader是为了提供一个自包含的示例,您无需上传csv文件即可运行。另一个问题的重点是如何在解析行之前修剪前导/尾随,诀窍是使用复合项处理器,如示例所示

您不需要创建新的读卡器,下面是一个FlatFileItemReader的示例,您可以与相同的示例一起使用:

@Bean
public FlatFileItemReader<String> itemReader() {
    return new FlatFileItemReaderBuilder<String>()
            .name("itemReader")
            .resource(new FileSystemResource("/absolute/path/to/file"))
            .lineMapper(new PassThroughLineMapper())
            .build();
}

希望这有帮助。

显示错误和数据-1.csv。您正在从循环内部返回。此代码将始终处理第一行,然后返回。我想你不是这个意思如果修复无法解决问题,您确实需要描述您遇到的问题。这很可能是一个重复的问题,解决基本文件阅读:我更新了代码@devdotlog您可以看到该文件