使用 CsvPrinter 在 csv java 中写入 list<String>

Writing list<String> in csv java using CsvPrinter

我有 List<String>,我正在将其写入 csv 文件,但每一行都写在一个单元格上。我怎样才能通过 "," 拆分它们?我尝试设置分隔符,但仍然无效。
代码

Writer writer = new FileWriter("D://new.csv", true);
            CSVPrinter csvPrinter = new CSVPrinter(writer, CSVFormat.DEFAULT);
            csvPrinter.printRecords(myList);

documentation 所述,当您给出 List<String> 时,它将使用它一个记录,即一行,即一个单元格中的每个 String

If the given collection only contains simple objects, this method will print a single record like printRecord(Iterable)


您需要一个代码,利用每个 String 实际上是一行的事实,例如

  • 通过每个 String 拆分一个单独的记录

    List<String> myList = new ArrayList<>();
    for (String row : myList)
        csvPrinter.printRecord(row.split(","));
    
  • 拆分所有 String 然后将整个列表作为记录列表传递

    List<String> myList = new ArrayList<>();
    List<String[]> myListSplitted = myList.stream().map(row -> row.split(",")).collect(Collectors.toList());
    csvPrinter.printRecords(myListSplitted);