首页 > 解决方案 > 拆分行流以提取逗号分隔的数据

问题描述

文件中的每一行都有逗号分隔的数据。我需要从每一行中提取基于逗号的每个字段作为字符串并存储为属性。如何使用 Java Streams 实现这一点?

Stream<String> lines = Files.lines(wiki_path);

标签: javajava-stream

解决方案


从文件中读取:

Files::lines返回一系列Stream<String>可能对您有利的行。

List<String> propertyList = Files.lines(wiki_path)    // Stream<String>      
        .map(line ->line.split(";"))                  // Stream<String[]>
        .flatMap(Arrays::stream)                      // Stream<String>
        .collect(Collectors.toList());                // List<String>

结果是List从文件中读取的所有属性中的一个,用换行符和;分隔符分隔。


写入属性

由于属性是基于键值原则构建的,因此您需要每个加载的属性的键。假设值=键:

Properties properties = new Properties();
propertyList.forEach(property -> properties.set(property, property ));

这是一个非常原始的示例,您必须根据需要对其进行修改。阅读更多关于属性的信息


推荐阅读