如何将多个列表中的值写入新的csv文件?

时间:2019-07-31 10:01:02

标签: java opencsv

我正在尝试创建一个新的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”列中 我该怎么办?

谢谢

2 个答案:

答案 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)});
}