【发布时间】:2018-08-23 22:03:09
【问题描述】:
目前,我正在使用 Groovy 创建嵌套的 for 循环,将对象的内容打印到旨在成为分隔数据行的字符串。我想将这些字符串输出到 csv 文件,而不是打印出来。
代码如下:
for (doc in docs) {
AnnotationSet row = doc.getAnnotations("Final").get("Row")
AnnotationSet BondCounsel = doc.getAnnotations("Final").get("Bond_Counsel")
AnnotationSet PurchasePrice = doc.getAnnotations("Final").get("PurchasePrice")
AnnotationSet DiscountRate = doc.getAnnotations("Final").get("DiscountRate")
for (b in BondCounsel) {
for (d in DiscountRate) {
for (r in row) {
for (p in PurchasePrice) {
println(doc.getFeatures().get("gate.SourceURL") + "|"
+ "mat_amount|" + r.getFeatures().get("MatAmount") + "|"
+ "orig_price|" + p.getFeatures().get("VAL") + "|"
+ "orig_yield|" + r.getFeatures().get("Yield") + "|"
+ "orig_discount_rate|" + d.getFeatures().get("rate")+ "|"
+ "CUSIP|" + r.getFeatures().get("CUSIPVAL1") + r.getFeatures().get("CUSIPVAL2") + r.getFeatures().get("CUSIPVAL3") + "|"
+ "Bond_Counsel|" + b.getFeatures().get("value"))
}
}
}
}
}
其中输出只是一系列字符串,例如:
filename1|mat_amt|3|orig_price|$230,000.....
filename2|mat_amt|4|orig_price|$380,000.....
我知道我可以设置一个文件写入器,即
fileWriter = new FileWriter(fileName);
csvFilePrinter = new CSVPrinter(fileWriter, csvFileFormat);
csvFilePrinter.printRecord(FILE_HEADER);
<for loop here storing results>
csvFilePrinter.printRecord(forLoopResults)
但我不确定如何正确格式化和存储我当前在 for 循环中打印的内容,以便能够传递给 csvFilePrinter.printRecord()
任何帮助都会很棒。
【问题讨论】: