Stream-ek

A következő feladatot stream-ek segítségével valósítsuk meg.

  1. Segítő anyagok: Stream-ek. A feladat megoldásakor használjunk Stream-eket, ne használjunk köztes tárolást. Használjuk az új java IO segédfüggvényeit (Paths, Files). Ügyeljünk arra, hogy csak a szöveges fájlokat próbáljuk megnyitni (szűrhetünk például fájlnév alapján).
  2. Készítsünk egy linesInFiles függvényt, ami egy stream-ben kap fájlneveket, majd visszaad egy stream-et, ami az összes fájl összes sorát tartalmazza.
  3. Alakítsuk át a linesInFiles függvényt úgy, hogy a fájloknak csak azokat a sorait írja ki, ami egy megadott karaktersorozatot tartalmaz.
  4. Alakítsuk át a linesInFiles függvényt úgy, hogy minden sor elé írja oda, hogy az melyik fájlnak hányadik sora. Tipp: egy map-ben tudunk mellékhatásokat okozni, ezt kihasználhatjuk itt.
  5. Készítsünk egy listFiles függvényt, ami előállít egy stream-et, ami a paraméterként megadott mappából rekurzívan elérhető fájlokat (útvonalukat) tartalmazza. Tehát az almappák fájljai, illetve az azokon belül elérhető fájlok is kerüljenek a stream-ben visszaadásra.
  6. Próbáljuk az egyes stream-ek helyett párhuzamos stream-eket használni. Futtassuk sokszor a rekurzív grep-et, és vizsgáljuk meg, hogy melyik stream-et érdemes párhuzamosítani.