嗨,我是这个春季批次的新手。我正在从数据库中读取数据并将其写入文本文件。我将数据附加到现有file.i可以做到这一点,但我想从新行追加文件中的数据....
实施例.... 现有的文本文件就像。
嗨,我是春季批次的新手。
所以现在当我从flatfileitemwriter写入其他数据时,它会直接附加到该行旁边。我想让它从下一行写为...
嗨,我是春季批次新手。但我会学习它。
但现在打印为....
嗨,我是春季批次的新手。但我会学习它。
所以请帮助我......
这是我的作家..
<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();
}
答案 0 :(得分:0)
默认情况下,FlatFileItemWriter
使用默认行分隔符
System.getProperty("line.separator")
我认为你已经在代码中的某些位置覆盖了这个值。
有关详细信息,请阅读source code。
以下是来自write()
FlatFileItemWriter
方法的一段代码
@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++;
}
...
}