Coldfusion opensv csvWriter语言 - 我得到writeNext方法没有找到



我有以下代码:

<cfset csvFilename = 'myCSV.csv'>
<cfset fileWriter = createobject("java","java.io.FileWriter").init("#csvFileName#")>
<cfset csvWriter = createObject("java","com.opencsv.CSVWriter").init(fileWriter, ",")>
<cfset csvWriter.writeNext('{"1","2"}', true)>
<cfset csvWriter.flush()>
<cfset fileWriter.close()>
<cfset csvWriter.close()>

当我运行页面时,我得到这个错误消息:

没有找到writeNext方法。

没有指定方法名的方法和参数类型或writeNext方法被参数重载ColdFusion无法可靠破译的类型。ColdFusion发现0方法匹配所提供的参数。如果这是一个Java对象并且您验证了该方法存在,使用javacast函数来减少了不确定性。

我搜索了互联网,似乎找不到任何使用csvWriter与Coldfusion的例子,我不知道为什么它不工作。我有一个csvReader和ReadNext的工作示例,但不是WriteNext。知道我做错了什么吗?我试着做一个javacast,但也没有工作。

<cfset csvWriter.writeNext(javacast("string",'1,2'))>

我正在使用Coldfusion 11和opensvv -3.8.jar

根据API, writeNext()的重载需要一个String[],或者一个字符串数组。CF数组与Java数组略有不同,但它们是兼容的。这两种方法都可以:

<cfset csvWriter.writeNext( ["1","2"], true)>
<cfset csvWriter.writeNext( javacast("String[]", ["3","4"]), javacast("boolean", true))>

作为题外话,跳过对fileWriter.close()的调用。当您调用CSVWriter.close()时,它会为您关闭底层写入器。两者都调用将导致错误。

<cfset csvFilename = 'myCSV.csv'>

如果没有完整的路径,我不确定该文件将在哪里结束。总是指定一个完整的路径可以节省很多麻烦;-)

相关内容

最新更新