我想将groovy脚本结果写入我的Mac机器上的文件中。 我如何在Groovy中做到这一点? 在这里我的尝试:
log.info "Number of nodes:" + numElements
log.info ("Matching codes:"+matches)
log.info ("Fails:"+fails)
// Exporting results to a file
today = new Date()
sdf = new java.text.SimpleDateFormat("dd-MM-yyyy-hh-mm")
todayStr = sdf.format(today)
new File( "User/documents" + todayStr + "report.txt" ).write(numElements, "UTF-8" )
new File( "User/documents" + todayStr + "report.txt" ).write(matches, "UTF-8" )
new File( "User/documents" + todayStr + "report.txt" ).write(fails, "UTF-8" )
任何人都可以帮助导出结果部分吗?
谢谢, 问候, 一个 好的,我已设法用
创建一个文件file = new File(dir + "${todayStr}_report.txt").createNewFile()
如何添加数字,匹配和失败?像这样:
File.append (file, matches)?
我得到了以下错误:
groovy.lang.MissingMethodException: No signature of method: static java.io.File.append() is applicable for argument types: (java.lang.Boolean, java.util.ArrayList) values: [true, [EU 4G FLAT L(CORPORATE) SP, EU 4G FLAT M(CORPORATE), ...]] Possible solutions: append(java.lang.Object, java.lang.String), append(java.io.InputStream), append(java.lang.Object), append([B), canRead(), find() error at line: 33
答案 0 :(得分:1)
你的文件路径错误。我没有MAC,所以我不是100%肯定,但从我的观点来看,你应该有:
new File("/User/documents/${todayStr}report.txt").write(numElements, "UTF-8")
您缺少至少两个反斜杠,第一个在用户之前,第二个在路径中的文档之后。使用现在的方法,它会尝试保存到目录User / documentDATE,非常确定它不存在。
所以上面我用绝对路径向你展示了道路。你也可以这样写:
new File("${todayStr}report.txt").write(numElements, "UTF-8")
如果文件已创建,那么您将100%确定文件路径存在问题:)
还有一些东西 - 因为它是一个常规的,尝试使用语言优于Java的优点,有几种处理文件的方法,我还重写了你的日志,告诉你它是多么简单在groovy中使用Strings:
log.info "Number of nodes: ${numElements}"
log.info "Matching codes: ${matches}"
log.info "Fails: ${fails}"
我希望它有所帮助