【问题标题】:How to write an arraylist as a CSV [duplicate]如何将数组列表写为 CSV [重复]
【发布时间】:2017-01-19 09:30:51
【问题描述】:

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

【问题讨论】:

  • supply 是什么?另外,请尝试创建一个mcve

标签: java csv arraylist opencsv


【解决方案1】:

看起来您传递给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 类,只需将 List 的每个元素转储到输出文件的单独一行。

【讨论】:

  • arlist 是一个整数数组列表,你如何通过字符串循环?
  • 方法'writeNext'只允许String[]作为它的参数
  • @RKR 好的,在这种情况下,将 List 的每个 Integer 转换为 String[] 都可以。我确实修正了另一个错字。
  • 我用了上面的方法还是不行。我也试过for (Integer i : arlist) { String [] y=new String[1]; y[0]=x.toString();writer.writeNext(new String[]{i.toString()}); }但是不行
  • @RKR 你得到什么输出?
猜你喜欢
  • 2016-07-25
  • 2019-06-22
  • 2019-04-09
  • 1970-01-01
  • 1970-01-01
  • 2019-01-10
  • 2019-11-15
  • 2019-01-24
  • 2013-03-12
相关资源
最近更新 更多