我正在使用Spring Batch MultiResourceItemReader来读取多文件文件。这些文件位于父目录及其子目录中。
已经尝试过:
通过我自己的自定义代码读取文件,然后手动创建Resource数组。
在代码示例中可以看到使用PathMatchingResourcePatternResolver(受此启发性资源的启发,在JAR中使用PathMatchingResourcePatternResolver和URLClassloader
@Bean
public MultiResourceItemReader<List<SingleJsonRowInput>>
multiResourceItemReader() {
PathMatchingResourcePatternResolver patternResolver = new
PathMatchingResourcePatternResolver();
Resource resources[] = null;;
try {
resources =
patternResolver.getResources("file:C:\\inputFolder\\**\\*.json");
} catch (IOException e) {
e.printStackTrace();
}
MultiResourceItemReader<List<SingleJsonRowInput>>
multiResourceItemReader = new MultiResourceItemReader<>();
multiResourceItemReader.setResources(resources);
multiResourceItemReader.setDelegate(new
ItemReaderForMulti(fileManager));
return multiResourceItemReader;
}
您可以使用以下代码段:
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
Resource[] resources = resolver.getResources("file:/root/folder/**/*.json");
该**/*
会由递归返回的文件root/folder
。然后,您将资源数组传递给MultiResourceItemReader
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句