java - отфильтровать файл журнала по регулярному выражению - PullRequest
0 голосов
/ 25 апреля 2020

Мне нужно отфильтровать данные из журнала и мне нужно отфильтровать данные, время которых 13: 00-14: 59. но этот и многие другие искушения не удалось. Ничего не отображается Файл журнала

Мой метод:

public static void Proccesing(File file){
    String formula = ".*1(3 [0-5][0-9]|4 [0-5][0-9]).*";

    try{
        BufferedReader rd= new BufferedReader(new FileReader(file));
        String line = rd.readLine();
        Pattern pattern = Pattern.compile(formula);
        Matcher matcher = pattern.matcher(line);

        while(line != null){
            matcher.reset(line);
            if(matcher.find()){
                line = rd.readLine();
                System.out.println(line);

            }

        }

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

}

1 Ответ

0 голосов
/ 25 апреля 2020

Вы можете фильтровать журналы, используя подход Java8:

public static void process(String logFile) throws IOException {
    Files.lines(Path.of(logFile))
        .filter(s -> s.matches(".*1(3 [0-5][0-9]|4 [0-5][0-9]).*"))
        .forEach(System.out::println);
}
...