private static void countTodoAndFixmes(File directory) throws IOException {
        for (File file : directory.listFiles()) {
            if (file.isDirectory()) {
                countTodoAndFixmes(file);
            } else {
                for (String currentEnding : CONFIG.getFileEndingsToCheck()) {
                    if (file.getAbsolutePath().endsWith(currentEnding) && !ignoreFile(file)) {
                        FileInputStream fis = new FileInputStream(file);
                        byte[] data = new byte[(int) file.length()];
                        fis.read(data);
                        fis.close();

                        String fileContent = new String(data, "UTF-8");

                        int index = fileContent.indexOf("TODO");
                        while (index > 0) {
                            TODOS.add(file.getAbsolutePath());
                            index = fileContent.indexOf("TODO", index + 3);
                        }
                        index = fileContent.indexOf("FIXME");
                        while (index > 0) {
                            FIXMES.add(file.getAbsolutePath());
                            index = fileContent.indexOf("FIXME", index + 3);
                        }
                        index = fileContent.indexOf("@Deprecated");
                        while (index > 0) {
                            DEPRECATEDS.add(file.getAbsolutePath());
                            index = fileContent.indexOf("@Deprecated", index + 3);
                        }
                    }
                }
            }
        }
    }