java - 如何将数组列表写入 CSV

标签 java csv arraylist opencsv

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

最佳答案

看起来您传递给 writeNext() 的每个数组都会成为 CSV 中的一行,因此您需要一个循环来为每个元素调用 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 类,并将 List 的每个元素转储到单独的一行输出文件。

关于java - 如何将数组列表写入 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41738187/

相关文章:

c# - 继承类型的 CSV 序列化

java - 如何从一个线程循环 arraylist,同时从其他线程添加到它?

java - 删除 TreeSet 中的重复项

java - 如何在不使用类 InetAddress 或避免 10 分钟缓存时间的情况下获取 DNS 解析时间?

java - 在单个应用程序中组织多个端点的最佳方式

mysql - 如何将 CSV 文件导入 MySQL 表?

javascript - 如何在 React Native 中创建和保存 CSV 文件?

java - "[\x09-\x0d -~]"正则表达式是什么意思?

java - JSP 文件中的 Lambda 表达式无法编译

java - 实现一个包含 k = Date object v = array 的 hash map