![](/img/trans.png)
[英]Why file not creating using FlatFileItemWriter in spring batch?
[英]Spring Batch FlatFileItemWriter - output customization
我需要生成具有以下要求的 CSV 文件:
输入:
预期输出:
"Field1"|"Field2With\\Backslash\"DoubleQuotes\"And|Pipe"|"Field3"
是否有可能获得这样的输出?
最好的解决方案是在 DelimitedLineAggregator 的子类中实现引用和转义。
基本上,您只想在编写字段之前对其进行处理。 你可以用这两种方法
假设此方法处理您的字段
public String escape(String str) {
str = "\"" + str + "\"";
str = str.replace("|", "\\|");
str = str.replace("\\", "\\\\");
return str;
}
1 - 在处理器期间处理它- 首选
@Override
public A process(B b) throws Exception {
A a = new A();
//Process b to a...
a.setField1(escape(a.getField1)); //For each fields
return a;
}
2 - 在自定义 Writer 中写入之前对其进行处理
public class EscapeFlatFileItemWriter<A> extends FlatFileItemWriter<A> {
@Override
public void write(List<? extends A> items) throws Exception {
for (A a : items) {
a.setField1(escape(a.getField1)); //For each fields
}
super.write(items);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.