[英]How to write a List of ArrayLists to CSV format in Java
我有以下格式的数据:
List<ArrayList<String>>
我想将其写入CSV。 下面是我的代码:
private static void writeToCSV(List<ArrayList<String>> 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<String> each: csvInput){
writer.writeNext(each);
}
writer.close();
}//end of writeTOCSV
方法“ writeNext”仅允许使用String []作为参数。 如下所示,当我尝试使用Object []将'ArrayList each'转换为String []时,出现运行时类型转换错误:
Object[] eachTemp = each.toArray();
writer.writeNext((String[]) eachTemp);
谁能告诉我我要去哪里错了?
您正在将列表转换为对象数组。 要创建字符串数组,请执行以下操作:
for(ArrayList<String> each: csvInput){
writer.writeNext(each.toArray(new String[each.size()]));
}
您无法将Object[]
转换为String[]
因为Object[]
可以包含Dog,Cat,Integer等。
您应该使用重载的List#toArray(T [])方法。
List<String> list = new ArrayList<String>();
String[] array = list.toArray(new String[] {});
尝试使用toArray
的参数化版本-
String[] eachTemp = each.toArray(new String[each.size()]);
writer.writeNext(eachTemp);
编辑:哎呀,他们击败了我!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.