Jak masz już swój string - który jest ciągiem znakowym, nie potrzebujesz do tego klasy Pattern.
Przykład przefiltrowania z wypisaniem, inną opcją jest po prostu skomentowanie tego do rezultatu. np poprzez collect();
private void findStringINFile(String expectedString) {
try (Stream<String> stream = Files.lines(Paths.get(fileName))) {
stream.filter(lines -> lines.contains(expectedString))
.forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();
}
}
Program masz potwornie zagmatwany? Jak podajesz nazwe pliku? Czy poprawnie wszystko zapisuje sie do pliku? Czy konczysz operacje zamkniecia pliku, zanim odczytasz dane?Bo z tego co widze to nie ma szansy to zadzialac jak oczekujesz.
Nie wiem czy zdajesz sobie sprawe z tego jak dziala Pattern i Matcher bo np tworząc
Pattern pattern = Pattern.compile("foo");
Matcher matcher = pattern.matcher("foofoo");
// matcher znajdzie 2 razy "foo" i "foo"
Dodatkowo w pętli tworzysz i nadpisujesz non stop np buffor:
BufferedReader br = new BufferedReader(new FileReader(fileName))