如何将数组列表写成 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
的每个元素转储到单独的一行输出文件。
我目前有结果集中的数组列表,我使用 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
的每个元素转储到单独的一行输出文件。