Cómo procesar fragmentos de un archivo con java.util.stream
Para familiarizarme con la API de transmisión, intenté codificar un patrón bastante simple.
Problema: Tener un archivo de texto que contiene bloques de texto no anidados. Todos los bloques se identifican por patrones de inicio / fin (p. Ej.<start>
y<stop>
. El contenido de un bloque no se distingue sintácticamente del ruido entre los bloques. Por lo tanto, es imposible trabajar con lambdas simples (sin estado).
Solo pude implementar algo feo como:Files.lines(path).collect(new MySequentialParseAndProsessEachLineCollector<>());
Para ser honesto, esto no es lo que quiero.
Estoy buscando un mapeador algo como:Files.lines(path).map(MyMapAllLinesOfBlockToBuckets()).parallelStream().collect(new MyProcessOneBucketCollector<>());
¿hay una buena manera de extraer fragmentos de datos de una transmisión de Java 8 parece contener un esqueleto de una solución. Desafortunadamente, soy demasiado terco para traducir eso a mi problema. ;-)
¿Alguna pista?