如何将数组列表写成 CSV

How to write an arraylist as a CSV

我目前有结果集中的数组列表,我使用 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 columns.Instead 的 1 行 CSV,我需要一个包含 1 列的 100 行 CSV。(数组列表的大小为 100)。感谢任何帮助。

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

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 class 的使用,只需将 List 的每个元素转储到单独的一行输出文件。