我正在尝试将数据写入InputStream
而不是文件。
我的Writer类扩展了FlatFileItemWriter
我看到FlatFileItemWriter<>
可以选择将数据写入InputStream
我正在设置这样的资源
setResource(new InputStreamResource(inputStream));
我收到以下错误
org.springframework.batch.item.ItemStreamException: Could not convert resource to file: [InputStream resource [resource loaded through InputStream]]
at org.springframework.batch.item.file.FlatFileItemWriter.getOutputState(FlatFileItemWriter.java:384) ~[spring-batch-infrastructure-3.0.8.RELEASE.jar:3.0.8.RELEASE]
at org.springframework.batch.item.file.FlatFileItemWriter.open(FlatFileItemWriter.java:322) ~[spring-batch-infrastructure-3.0.8.RELEASE.jar:3.0.8.RELEASE]
Caused by: java.io.FileNotFoundException: InputStream resource [resource loaded through InputStream] cannot be resolved to absolute file path
at org.springframework.core.io.AbstractResource.getFile(AbstractResource.java:114) ~[spring-core-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at org.springframework.batch.item.file.FlatFileItemWriter.getOutputState(FlatFileItemWriter.java:381) ~[spring-batch-infrastructure-3.0.8.RELEASE.jar:3.0.8.RELEASE]
可以采取哪些措施来纠正这个问题?或者还有其他方法可以实现吗?
这样做的目的是通过 S3Client 将流发送到 AWS S3 ,这比创建文件实例并上传它更为舒适。
答案 0 :(得分:0)
使用FlatFileItemWriter
您将无法直接写入Outputstream
,它只会将内容写入输出物理文件。
如果需要,您可以使用输出文件进一步传输数据。