我在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[]
数组的代码进行单元测试,并确保它解析的文件没有扩展名。