gpt4 book ai didi

java - Spring Batch writer 从下一行追加数据

转载 作者:太空宇宙 更新时间:2023-11-04 14:58:49 33 4
gpt4 key购买 nike

嗨,我是这个 Spring 批处理的新手。我正在从数据库读取数据并将其写入文本文件。我正在将数据附加到现有文件中。我可以做到这一点,但我想从新行将数据附加到文件中......

示例....现有的文本文件就像。

嗨,我是 Spring Batch 的新手。

所以现在当我从 flatfileitemwriter 写入其他数据时,它直接附加到该行旁边。我希望它从下一行将其写入为..

嗨,我是 Spring Batch 的新手。不过我会学的。

但现在它打印为......

嗨,我是 Spring Batch 的新手。但我会学习它。

所以请帮助我......

这是我的作家..

<bean id="dbToFileItemWriter"
class="org.springframework.batch.item.file.FlatFileItemWriter"
scope="step">
<property name="resource" value="file:${Subrogrationoutfile}" />
<property name="appendAllowed" value="true"/>
<property name="lineAggregator">
<bean class="com.hcsc.ccsp.nonadj.subrogration.batch.SubrogrationLineAggregator"/>
</property>
</bean>

我的聚合器是

public class SubrogrationLineAggregator extends PassThroughLineAggregator<Subrogration>{
@Override
public String aggregate(Subrogration subrogration){

StringBuilder result = new StringBuilder();


//logic

return result.toString();

}

最佳答案

默认情况下FlatFileItemWriter使用默认行分隔符

System.getProperty("line.separator")

我认为您已经在代码中的某些位置覆盖了该值。

<小时/>

有关更多信息,请阅读 source code .

这是来自 FlatFileItemWriterwrite() 方法的代码段

@Override
public void write(List<? extends T> items) throws Exception {

...
StringBuilder lines = new StringBuilder();
int lineCount = 0;
for (T item : items) {
lines.append(lineAggregator.aggregate(item) + lineSeparator);
lineCount++;
}
...
}

关于java - Spring Batch writer 从下一行追加数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22873376/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com