Проблема при чтении файла (server.log) с Java - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь найти в файле журнала некоторые предложения и затем перейти к карте, но она не работает должным образом.Даже если в журнале есть слово «лук», это говорит о неудаче.

Попытка найти в файле server.log значения test_input1, test_input2 ..., даже если это значение там, печать не удалась

    import java.io.BufferedReader;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.HashMap;
    import java.util.Map;

    public class Sample {
        public static void main(String[] args) {
            String filePath = "C:\\Users\\xxxxxxxx\\jboss-6.0.0-final\\server\\default\\log\\server.log";
            String test_input1 = "some meaningful log";
            String test_input2 = "bow";
            String test_input3 = "bat";

            Map<String, String> test_results = new HashMap<String, String>();
            BufferedReader br = null;
            try {
                br = new BufferedReader(new FileReader(filePath));
                String line;
                while ((line = br.readLine()) != null) {
                    System.out.println("File ---> " + line);

                    if (line.equalsIgnoreCase(test_input1)) {
                        test_results.put("Test Case 1", "passed");
                    } else {
                        test_results.put("Test Case 1", "failed");
                    }

                    if (line.equalsIgnoreCase(test_input2)) {
                        test_results.put("Test Case 2", "passed");
                    } else {
                        test_results.put("Test Case 2", "failed");
                    }

                    if (line.equalsIgnoreCase(test_input3)) {
                        test_results.put("Test Case 3", "passed");
                    } else {
                        test_results.put("Test Case 3", "failed");
                    }
                }

                System.out.println("Summary of test cases: ");

            for (Map.Entry<String, String> entry : test_results.entrySet()) {
                if (entry.getKey().contains("Test Case 1")) {
                    String testresult1 = entry.getValue();
                    System.out.println("Test Case 1 Result ===> " + testresult1);
                } else if (entry.getKey().contains("Test Case 2")) {
                    String testresult2 = entry.getValue();
                    System.out.println("Test Case 2 Result ===> " + testresult2);
                } else if (entry.getKey().contains("Test Case 3")) {
                    String testresult3 = entry.getValue();
                    System.out.println("Test Case 3 Result ===> " + testresult3);
                }
            }
        } catch (FileNotFoundException e) {
            System.out.println("File not found in path: " + filePath);
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (br != null)
                    br.close();
            } catch (Exception e) {
                System.err.println("Exception while closing bufferedreader " + e.toString());
            }
        }
    }
}

Заранее спасибо за помощь

1 Ответ

0 голосов
/ 06 декабря 2018

Ваша логика else при добавлении на карту меняет значение каждый раз на карте.то есть каждый раз, когда вы обрабатываете строку, else изменяет значение на карте для всех ключей на карте

Itr 1 T1 pass t2 fail t3 fail

Itr 2 T1 fail (по причинеиначе) t2 fail t3 pass

, поэтому, если существует только две итерации, окончательное значение будет из itr 2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...