【问题标题】:Spring Batch : How to parse a horked CSV file?Spring Batch:如何解析 horked CSV 文件?
【发布时间】:2019-04-18 16:09:47
【问题描述】:

Spring Batch 用于解析 CSV 文件的常见任务之一是解析 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"

我使用了这个代码here。 这对我有用,但我想使用自己的 CSV!请问有什么建议吗?

【问题讨论】:

  • 显示错误和 data-1.csv。
  • 您正在从循环内部返回。此代码将始终处理第一行然后返回。我想这不是你的意思。 - 如果修复不能解决问题,你真的需要描述你遇到的问题。
  • 这很可能是解决基本文件读取的重复问题:stackoverflow.com/a/27324399/196869
  • 我更新了我的代码@devdotlog 你可以看到文件

标签: java spring spring-batch


【解决方案1】:

正如我在您链接的答案的评论中所说,您可以使用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();
}

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-16
    • 1970-01-01
    • 2012-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多