Java 如何在spring批处理中使用FlatFileItemWriter写入标准输出?

Java 如何在spring批处理中使用FlatFileItemWriter写入标准输出?,java,spring,iostream,java-io,spring-batch,Java,Spring,Iostream,Java Io,Spring Batch,我在spring批处理项目的beans定义文件中配置了以下编写器: <bean id="writer" class="org.springframework.batch.item.file.FlatFileItemWriter"> <property name="resource" value="file:/path/to/somefile"/> <property name="lineAggregator"> <bean

我在spring批处理项目的beans定义文件中配置了以下编写器:

<bean id="writer" class="org.springframework.batch.item.file.FlatFileItemWriter">
    <property name="resource" value="file:/path/to/somefile"/>
    <property name="lineAggregator">
        <bean class="MyCustomLineAggregator"/>
    </property>
</bean>

现在,我希望输出转到标准输出,而不是写入/path/to/somefile,原因是我希望通过命令行启动器启动此作业,并通过管道将输出传输到另一个unix程序

我尝试将资源属性设置为“file:/dev/stdout”,但随后出现异常: org.springframework.batch.item.ItemStreamException:无法创建文件:[/dev/stdout]

我试着看看是否有现成的资源可以处理这个问题,但我有点不知道哪一个可以做这项工作

谢谢你的帮助

编辑:以下是我根据您的建议提出的解决方案:

import java.util.List;
import org.springframework.batch.item.ItemWriter;
import org.springframework.batch.item.file.transform.LineAggregator;

public class StdoutWriter<T> implements ItemWriter<T> {

LineAggregator<T> lineAggregator;

public void setLineAggregator(LineAggregator<T> lineAggregator) {
    this.lineAggregator = lineAggregator;
}

@Override
public void write(List<? extends T> items) throws Exception {
    for (T item : items) {
        System.out.println(lineAggregator.aggregate(item));
    }
}

}
import java.util.List;
导入org.springframework.batch.item.ItemWriter;
导入org.springframework.batch.item.file.transform.LineAggregator;
公共类StdoutWriter实现ItemWriter{
线性集料器线性集料器;
公共无效设置LineAggregator(LineAggregator LineAggregator){
this.lineAggregator=lineAggregator;
}
@凌驾

public void write(List我认为没有任何现成的东西可以满足您的需要。创建自己的
ItemWriter
非常简单,它可以实现一个简单的
System.out.println()
。然后,如果您仍然需要该文件,可以使用


或者,您可以打开一个自定义文件并在那里进行打印。

您可以使用另一种方法写入标准输出。本质上,您可以指定
/dev/stdout
作为输出文件资源。请确保在wri中将
shouldDeleteIfExists
设置为
false
并将
appendAllowed
设置为
true
ter或您将得到运行时错误。

事实上,编写我自己的itemwriter是最简单的解决方案。感谢并抱歉没有预先考虑它:-)在这里您可以找到相同的实现。