【问题标题】:Coldfusion opencsv csvWriter - I get writeNext method was not foundColdfusion opencsv csvWriter - 我找不到 writeNext 方法
【发布时间】:2016-10-28 23:17:06
【问题描述】:

我有以下代码:

<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 无法可靠破译的类型。冷融合 找到 0 与提供的参数匹配的方法。如果这是一个 Java 对象 并且您验证了该方法存在,请使用 javacast 函数 减少歧义。

我搜索了互联网,似乎找不到任何将 csvWriter 与 Coldfusion 一起使用的示例,我不确定它为什么不起作用。我有一个 csvReader 和 ReadNext 的工作示例,但没有 WriteNext。关于我做错了什么的任何想法?我曾尝试进行 javacast,但也没有用。

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

我正在使用带有 opencsv-3.8.jar 的 Coldfusion 11

【问题讨论】:

  • 很好的第一个问题 1+。欢迎来到 S.O. :)

标签: coldfusion opencsv


【解决方案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() 时,它会为您关闭底层编写器。调用两者都会导致错误。

&lt;cfset csvFilename = 'myCSV.csv'&gt;

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

【讨论】:

  • 谢谢,我想这可能是因为我没有文件的完整路径,因为我尝试了数组和字符串的各种组合,但没有运气。有了完整的路径,它正在工作。感谢您花时间回答并确认它会起作用。
  • 嘿,它发生了。一轮特别有趣的“哦,你在哪里?”说服我接受完整的路径;-) 无论如何,很高兴它正在工作!
猜你喜欢
  • 1970-01-01
  • 2017-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-25
  • 1970-01-01
  • 2012-10-22
相关资源
最近更新 更多