如何在Java中将ArrayLists列表写入CSV格式

我有以下格式的数据:

List<ArrayList> 

我想把它写成CSV。 以下是我的代码:

 private static void writeToCSV(List<ArrayList> csvInput) throws IOException{ String csv = "C:\\output.csv"; CSVWriter writer = null; try { writer = new CSVWriter(new FileWriter(csv)); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } for(ArrayList each: csvInput){ writer.writeNext(each); } writer.close(); }//end of writeTOCSV 

方法’writeNext’只允许String []作为它的参数。 当我尝试使用Object []将’ArrayList each’类型转换为String []时,如下所示,我得到运行时类型转换错误:

  Object[] eachTemp = each.toArray(); writer.writeNext((String[]) eachTemp); 

谁能告诉我哪里出错了?

你不能将Object[]转换为String[]因为Object[]可以包含Dog,Cat,Integer等。

你应该使用重载的List#toArray(T [])方法。

 List list = new ArrayList(); String[] array = list.toArray(new String[] {}); 

您正在将列表转换为对象数组。 创建字符串数组:

 for(ArrayList each: csvInput){ writer.writeNext(each.toArray(new String[each.size()])); } 

尝试使用toArray的参数化版本 –

  String[] eachTemp = each.toArray(new String[each.size()]); writer.writeNext(eachTemp); 

编辑:哎呀他们打败了我!