Coldfusion opencsv csvWriter - 我找不到writeNext方法

时间:2016-10-28 23:17:07

标签: coldfusion opencsv

我有以下代码:

<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函数   减少歧义。

我搜索过互联网,似乎无法找到任何使用带有Coldfusion的csvWriter的例子,我不知道为什么它不起作用。我有一个csvReader和ReadNext的工作示例,但不是WriteNext。我做错了什么想法?我曾试图做一个javacast,但那也不起作用。

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

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

1 个答案:

答案 0 :(得分:1)

根据API,writeNext()的重载需要String[]或字符串数​​组。 CF数组与Java有点不同,但它们是compatible。这些都可以起作用:

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

顺便说一句,跳过对fileWriter.close()的呼叫。当您致电CSVWriter.close()时,它会为您关闭基础作家。调用两者都会导致错误。

  

<cfset csvFilename = 'myCSV.csv'>

如果没有完整路径,我不确定该文件将在何处结束。始终指定完整路径可以在以后节省大量的时间; - )