Разделение потока строк для извлечения данных, разделенных запятыми - PullRequest
3 голосов
/ 20 апреля 2019

Каждая строка в файле содержит данные, разделенные запятыми. Мне нужно извлечь каждое поле на основе запятой из каждой строки как String и сохранить как свойство.Как этого добиться с помощью Java Streams?

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

1 Ответ

1 голос
/ 20 апреля 2019

Чтение из файла:

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 ));

Это довольно примитивный пример, и вы должны изменить его в соответствии со своими потребностями. Узнайте больше о свойствах в Свойства .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...