Задача интересная и не очень большая, только если вы не решите писать к ней юнит-тесты как я... Запарился их писать😄...
P/S. Кому интересны Stream API, советую разобраться и тут уместно кое-где (не везде) их применить. Можно писать через стримы, запускать, смотреть что вышло, закомментировать их, а затем писать обычным способом, для лучшего понимания...
Очень важно для валидатора, правильно проверить расширение файла... 30+ попыток убил, что бы понять что надо через конструкцию (File) logFile.toString().toLowerCase().endsWith(".log"), а не через logFile.getPath.endsWith(".log");
В 7 й задаче в диапазоне дат нужно не учитывать крайние значения, в условии не сказано, но валидацию по трем пунктам не проходит из за этого! Без комментариев никогда бы не понял в чем дело. Другим на заметку...
По началу испугался, хотел скипнуть. По итогу решил 6/8. В первой задаче следовало бы прямо написать для таких как я - «реализуйте чтение логов». А то я сидел с час думал откуда логи читать)
К 6 задаче реализовал то что у них в конце в рекомендациях по улучшению. Валидатор выбесил. Пролистал последние 2 задачи. Кода раза в 2 меньше чем правильном решении и он в 5 раз читабильней. Обидно блин.
Ой да идите лесом с такими задачами, первая задача - сразу хард и на 200+ строк, это точно для обучающихся задача?
Метод readLogs - это вообще что то с чем то, блок try, в котором цикл for, в котором if, в котором блок try, в котором блок while, в котором два if.
Вы что курили, когда это составляли?
Это решения автора, если бы авторы хотели, то они бы писали тем кто решил эту задачу своим способом и смотрели в комментах популярное. Там ребята всегда найдутся, которые решат на изи и проще.
это для того чтобы пройтись по дереву файлов и поддиректории и искать файлы с расширением .log и далее с ними работать читать содержимое файла парсить на отдельные части в условии сказано что слова разделены символом \t только у некоторых событии есть дополнительный параметр которые разделены пробелом и их тоже нужно распарсить на отдельные элементы
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ