У меня есть простое требование, как показано ниже в Spring Batch:
1) Считать список файлов из файловой системы через Reader.
Читатель должен вернуть список File
объектов и НЕ содержимого файла
3) Передать отдельный элемент процессору как File
объект
После поиска в Интернете я нашел много реализаций, но они
возвращает содержимое файла ( FlatFileItemReader ), а не File Object
Я планирую реализовать, как показано ниже:
Хорошо ли выглядит эта реализация?
Требуется возврат NULL
из Reader
, поскольку reader's read method
будет вызываться в цикле до Reader returns NULL
Процессор должен удалить файлы из файловой системы после завершения обработки
так что возврат NULL
из Reader
должен работать
public class Reader implements ItemReader<List<File>>{
@Override
public List<File> read() throws Exception {
List<File> fileList = // read from file system
if(fileList != null && !fileList.isEmpty()){
return fileList;
}else{
return null;
}
}
public class Processor implements ItemProcessor<File,File>
{
public File process(File inputFile) throws Exception
{
// process the file
//delete the file in the end
}
}