【发布时间】:2017-03-16 17:59:22
【问题描述】:
我正在尝试将 hashmap 数据写入 CSV 文件,但我看到正在生成空文件。这是我正在使用的以下代码:
String fileName
for (String key : concurrentHashMap.keySet()) {
logInfo(key + ": ")//gives the name of the file
logInfo("concurrentHashMapKey" + concurrentHashMap.get(key))
fileName = key
logInfo("fileName: " + fileName)
helpers.writeHashMapToCsv(concurrentHashMap, fileName)
}
public void writeHashMapToCsv(ConcurrentHashMap<String, String> collectedCSV, String fileName) throws Exception {
String eol = System.getProperty("line.separator")
try{
Writer writer = new FileWriter(".\\baseline-files\\" + fileName)
for (Map.Entry<String, String> entry : collectedCSV.entrySet()) {
println "entry = $entry"
writer.append(entry.getKey())
.append(',')
.append(entry.getValue())
.append(eol)
}
} catch (IOException ex ) {
ex.printStackTrace(System.err)
}
}
有人可以帮我看看我做错了什么吗?
注意: concurrentHashMap 大小 =2
concurrentHashMap = [NetworkLeakage_Main_crosstab.csv:占总付款总额的百分比 No Pro 沿 Serv Network,站点类型 Total Payments No Pro
家庭健康 网络外 1% $247,870
家庭健康拥有 6% $1,306,259
网络外专业护理机构 4% $860,545
拥有 18% 的熟练护理设施 $3,919,193
, IP_RehabSNF_Profiles_crosstab.csv: 设施站点类型 网络隶属关系 剧集数 总支付百分比 平均剧集支付 ALOS CMS 评级
LORRETTA HOSPITAL Anchor Owned 28 $344,392 2% $12,300 3
LORRETTA HOSPITAL 家庭健康 网络外 87 $14,358 0% $2,872
LORRETTA HOSPITAL 家庭健康 自有 19 $2,981 0% $2,981
LORRETTA HOSPITAL 网络外门诊 77 $3,706 0% $71
LORRETTA HOSPITAL 门诊自有 1,593 $149,194 1% $288
]
所以这里有 2 组键(文件名)和值(数据),我需要为其生成以下 2 个文件: 1. NetworkLeakage_Main_crosstab.csv
- IP_RehabSNF_Profiles_crosstab.csv
【问题讨论】:
-
如果您使用 groovy,最简单的处理 csv 的方法 - github.com/xlson/groovycsv
标签: csv groovy concurrenthashmap