我正在尝试创建一个新的csv文件,该文件的每个列将从不同的列表中获取值。 例如,第一列将具有第一列表的所有值,第二列将具有第二列表的所有值。
public void writeDataAtOnce()
{
File workingDirectory = new File(System.getProperty("user.dir"));
String path = workingDirectory + "/src/csv/";
String csvFile = path + "CsvOutput.csv";
try {
FileWriter outputfile = new FileWriter(csvFile);
CSVWriter writer = new CSVWriter(outputfile);
List<String[]> data = new ArrayList<>();
data.add(new String[] {String.valueOf(firstColumn)});
data.add(new String[] {String.valueOf(secondColumn)});
writer.writeAll(data);
writer.close();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我设法逐行写,但是我需要写到列。 结果是:
"A","B","C"
"35"
"19"
"33"
"31"
"25"
"45"
"16"
但是我想做的是在“ B”列上列出第二个列表。现在,两个列表都在“ A”列中 我该怎么办?
谢谢
答案 0 :(得分:0)
我没有从代码中清楚地看到它,而是代替了
data.add(new String[] {String.valueOf(firstColumn)});
data.add(new String[] {String.valueOf(secondColumn)});
我认为您想做这样的事情:
data.add(new String[] {String.valueOf(firstColumn), String.valueOf(secondColumn)});
答案 1 :(得分:0)
如果两个列表的长度相等...
List<String> firstColumn = new ArrayList<>();
List<String> secondColumn = new ArrayList<>();
//TODO add data to lists
int size = firstColumn.size();
for (int i = 0; i < size; i++) {
data.add(new String[] {firstColumn.get(i), secondColumn.get(i)});
}