gpt4 book ai didi

java - MultiResourceItemReader - 如果标题无效则跳过整个文件

转载 作者:行者123 更新时间:2023-12-01 18:40:28 24 4
gpt4 key购买 nike

我的 Spring Batch 作业读取包含两种类型 header 的 csv 文件列表。如果文件头与两种可能的头类型之一不匹配,我希望读者跳过整个文件。

我查看了Spring Boot batch - MultiResourceItemReader : move to next file on error 。但我不知道如何验证 header 标记以确保它们在计数和内容上匹配

最佳答案

我能够通过执行以下操作来解决这个问题,

public FlatFileItemReader<RawFile> reader() {
return new FlatFileItemReaderBuilder<RawFile>()
.skippedLinesCallback(line -> {
// Verify file header is what we expect
if (!StringUtils.equals(line, header)) {
throw new IllegalArgumentException(String.format("Bad header!", line));
}
})
.name( "myReader" )
.linesToSkip( 1 )
.lineMapper( new DefaultLineMapper() {
{
setLineTokenizer( lineTokenizer );
setFieldSetMapper( fieldSetMapper );
}} )
.build();
}

MultiResourceItemReader 中设置委托(delegate)时,我调用 reader() 方法。

注意headerlineTokenizerfieldSetMapper 都是我根据类型设置的变量我的工作预计会读取文件(以及哪一组 header )。

关于java - MultiResourceItemReader - 如果标题无效则跳过整个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59941623/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com