![](/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.