使用 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);
我有 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);