Como processar chuncks de um arquivo com java.util.stream
Para me familiarizar com a API do stream, tentei codificar um padrão bastante simples.
Problema: Ter um arquivo de texto que não contém blocos de texto aninhados. Todos os blocos são identificados pelos padrões de início / fim (por exemplo,<start>
e<stop>
. O conteúdo de um bloco não é sintaticamente distinguível do ruído entre os blocos. Portanto, é impossível trabalhar com lambdas simples (sem estado).
Eu era capaz de implementar algo feio como:Files.lines(path).collect(new MySequentialParseAndProsessEachLineCollector<>());
Para ser sincero, não é isso que eu quero.
Estou procurando um mapeador como:Files.lines(path).map(MyMapAllLinesOfBlockToBuckets()).parallelStream().collect(new MyProcessOneBucketCollector<>());
existe uma boa maneira de extrair pedaços de dados de um fluxo java 8 parece conter um esqueleto de uma solução. Infelizmente, eu sou muito duro para traduzir isso para o meu problema. ;-)
Alguma dica?