Spring Batch FlatFileItemWriter不会将数据写入文件

Spring Batch FlatFileItemWriter不会将数据写入文件,file,spring-batch,filewriter,File,Spring Batch,Filewriter,我不熟悉Spring批量应用程序。我正在尝试使用FlatFileItemWriter将数据写入文件。挑战在于应用程序正在给定路径上创建文件,但现在将实际内容写入其中 以下是与代码相关的详细信息: 列表数据文件列表:此列表包含我要写入文件的数据 FlatFileItemWriter<String> writer = new FlatFileItemWriter<>(); writer.setResource(new FileSystemResource("C:\\Deskt

我不熟悉Spring批量应用程序。我正在尝试使用
FlatFileItemWriter
将数据写入文件。挑战在于应用程序正在给定路径上创建文件,但现在将实际内容写入其中

以下是与代码相关的详细信息:

列表数据文件列表:
此列表包含我要写入文件的数据

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();
FlatFileItemWriter=新的FlatFileItemWriter();
writer.setResource(新文件系统资源(“C:\\Desktop\\test”);
writer.open(新建ExecutionContext());
writer.setLineAggregator(新的PassThroughLineAggregator());
writer.setAppendAllowed(true);
writer.write(数据文件列表);
writer.close();
这只是在适当的位置生成文件,但内容不会写入文件

我错过什么了吗?非常感谢您的帮助


谢谢

您可能需要强制同步到磁盘。从


这不是使用Spring批处理编写器和编写器数据的正确方法。您需要首先声明编写器的bean

  • 定义作业Bean
  • 定义步骤Bean
  • 在步骤中使用writerbean
请看以下示例:


似乎我们需要关闭流,否则内容将无法关闭()。。但是内容仍然没有被写入,是不是数据文件列表中充满了数据?因为我用SB4.0和2.2.6测试了您的代码,并且文件正确地填充了测试数据(
dataFileList
填充了从0到500000转换为字符串的整数),那么您的读者呢?您可以发布代码吗?如何填充数据文件列表?
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