Spring Batch FlatFileItemWriter не записывает данные в файл
Я новичок в приложении Spring Batch. Я пытаюсь использовать FlatFileItemWriter
записать данные в файл. Задача заключается в том, что приложение создает файл по заданному пути, но теперь записывает в него фактический контент.
Ниже приведены подробности, связанные с кодом:
List<String> dataFileList :
Этот список содержит данные, которые я хочу записать в файл
FlatFileItemWriter<String> writer = new FlatFileItemWriter<>();
writer.setResource(new FileSystemResource("C:\\Desktop\\test"));
writer.open(new ExecutionContext());
writer.setLineAggregator(new PassThroughLineAggregator<>());
writer.setAppendAllowed(true);
writer.write(dataFileList);
writer.close();
Это просто создание файла в нужном месте, но содержимое не записывается в файл.
Я что-то пропустил? Помощь высоко ценится.
Спасибо!
2 ответа
Это неправильный способ использования данных Spring Batch Writer и Writer. Вы должны сначала объявить bean of Writer.
- Определить Job Bean
- Определить Step Bean
- Используйте ваш бин Writer в Step
Посмотрите на следующие примеры:
Вам, вероятно, нужно принудительно выполнить синхронизацию с диском. Из документов по адресу https://docs.spring.io/spring-batch/trunk/apidocs/org/springframework/batch/item/file/FlatFileItemWriter.html,
setForceSync
public void setForceSync(boolean forceSync)
Flag to indicate that changes should be force-synced to disk on flush. Defaults to false, which means that even with a local disk changes could be lost if the OS crashes in between a write and a cache flush. Setting to true may result in slower performance for usage patterns involving many frequent writes.
Parameters:
forceSync - the flag value to set