Как обрабатывать фрагменты файла с помощью java.util.stream
Чтобы познакомиться с API-интерфейсом stream, я попытался написать довольно простой шаблон.
Проблема: Наличие текстового файла, содержащего не вложенные блоки текста. Все блоки идентифицируются с помощью start / endpatterns (например,<start>
а также<stop>
, Содержимое блока синтаксически не отличается от шума между блоками. Поэтому невозможно работать с простыми (без сохранения состояния) лямбдами.
Я просто смог реализовать что-то уродливое:Files.lines(path).collect(new MySequentialParseAndProsessEachLineCollector<>());
Если честно, это не то, что я хочу.
Я ищу что-то вроде картографа:Files.lines(path).map(MyMapAllLinesOfBlockToBuckets()).parallelStream().collect(new MyProcessOneBucketCollector<>());
Есть ли хороший способ извлечь куски данных из потока Java 8 кажется, содержит скелет решения. К сожалению, я глупо переводить это на мою проблему. ;-)
Есть намеки?