如何将一个arraylist写成CSV

时间:2017-01-19 09:30:52

标签: java csv arraylist opencsv

我目前拥有结果集中的arraylist,并使用openCSV库以CSV格式打印。

ArrayList<Integer> arlist=new ArrayList<Integer>();
for(i=1;i<30;i++){
 for(k=1;k<100;k++){

       String sql="select count(id) where day=?"
       PreparedStatement pstmt=conn.prepareStatement(sql);
       pstmt.setInt(1,k);
       ResultSet rs=rs.getInt(1);
       int count=rs.getInt(1); 
       arlist.add(count);
   }


   CSVWriter writer=new CSVWriter(new FileWriter("/home/user/file"+i+".csv"),',')
   writer.writeNext(arlist.toArray(new String [0]));
   writer.close();
   arlist.clear();
}

但问题是CSV是一行有100列的1行CSV。而不是这个我需要100行CSV和1列。(数组列表的大小是100)。任何帮助都是赞赏的。

1 个答案:

答案 0 :(得分:1)

您传递给writeNext()的每个数组看起来都会成为CSV中的一行,因此您需要一个为writeNext()的每个元素调用List的循环:

CSVWriter writer = new CSVWriter(new FileWriter("/home/user/file" + i + ".csv"),',') ;
for (Integer i : arlist) {
    writer.writeNext(new String[]{i.toString()});
}
writer.close();
arlist.clear();

当然,由于每行只有一列,因此可以跳过使用该CSVWriter类,只将List的每个元素转储到输出文件的单独一行。