使用Java 8 Stream将数据写入.CSV文件

Steerpike:

我正在尝试将2个数据集合输出到Java中的.csv文件。

集合1 =客户名称集合2 =客户参考

我希望.csv呈现为:

Smith:839393,
Johnson:283940,
Collins:293845

我的代码:

private void writeDataToFile() throws IOException {

    FileWriter writer = new FileWriter("src/test/resources/custData.csv");

    List<String> customers = new ArrayList<>(customers);
    List<String> references = new ArrayList<>(references);

    String collect1 = customers.stream().collect(Collectors.joining(",\n" + ":"));
    String collect2 = references.stream().collect(Collectors.joining(",\n" + ":"));

    writer.write(collect1 + collect2);
    writer.close();

}

我的输出:

Smith,
:Johnson,
:Collins839393,
:283940,
:293845

如何获得所需的输出?

用户-Upvote不要说谢谢:

如果两个列表的大小相同,则可以执行此操作。使用IntStream.range迭代列表,然后将数据映射。然后收集加入,\n

String res = IntStream.range(0, customers.size())
                      .mapToObj(i -> customers.get(i) + ":" + references.get(i))
                      .collect(Collectors.joining(",\n"));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章