我的spring批处理阅读器不会拾取没有扩展名的文件进行处理,而是忽略它们



我在spring批处理框架中使用FlatFileItemReader。我的一些文件是.txt(testfile1.txt(文件,但奇怪的是,有些文件没有任何扩展名(testfile2(。我的spring批处理阅读器不会拾取没有扩展名的文件进行处理,而是忽略它们。有没有一种方法可以让我的flatfileItem阅读器读取没有扩展名的文件?

我使用多资源项目阅读器如下

@Bean
@StepScope
@Qualifier("monthlyReconciliationMultiResourceItemReader")
public MultiResourceItemReader monthlyReconciliationMultiResourceItemReader() {
FileSystemResourceLoader fileSystemResourceLoader=new FileSystemResourceLoader();
ResourcePatternResolver patternResolver = new PathMatchingResourcePatternResolver(fileSystemResourceLoader);
Resource[] resources = null;
try {
resources = patternResolver.getResources(FilePathModifier.resolveTenantFilePath(tenantRequestContext.getCurrentTenant(), (getMonthlyReconFilePath())));
MultiResourceItemReader<Object> multiResourceItemReader = new MultiResourceItemReader<>();
multiResourceItemReader.setResources(resources);
multiResourceItemReader.setDelegate(monthlyReconciliationFlatFileItemReader());
return multiResourceItemReader;
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}

试着找出这一行的作用-

resources = patternResolver.getResources(FilePathModifier.resolveTenantFilePath(tenantRequestContext.getCurrentTenant(), (getMonthlyReconFilePath())));

请参阅此处-->

https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/core/io/support/ResourcePatternResolver.html

上面写着-->

Resource[]  getResources(String locationPattern)
Resolve the given location pattern into Resource objects.

你需要在这里给出图案-->

patternResolver.getResources(filePath with pattern);

有没有一种方法可以让我的flatfileItem阅读器读取没有扩展名的文件?

所有Spring Batch文件读取器都使用Spring Framework中的org.springframework.core.io.Resource接口。他们并不关心文件是否有扩展名。

在配置MultiResourceItemReader及其委托FlatFileItemReader之前,您需要对解析Resource[]数组的代码进行单元测试,并确保它解析的文件没有扩展名。

最新更新