FileFilterUtils
Описание
Тестовое задания для курса Java. Шифт.
Языки
- Java100%
Утилита фильтрации содержимого файлов
Описание
Утилита предназначена для фильтрации содержимого текстовых файлов, содержащих целые числа, вещественные числа и строки. Каждый тип данных записывается в отдельный выходной файл. Также утилита собирает статистику по каждому типу данных.
Возможности
- Разделение содержимого файлов по типам: целые числа, вещественные числа, строки.
- Гибкая настройка путей и префиксов выходных файлов.
- Поддержка режима добавления в существующие файлы.
- Сбор краткой и полной статистики по каждому типу данных.
- Обработка ошибок без аварийного завершения программы.
Особенности реализации
- Если не передан ни один из флагов
или-f, то программа не будет выводить информацию о статистике.-s - Если входные файлы содержат очень большие числа (<
и >Long.MIN_VALUE), то такие числа не будут учтены в статистике. НО! будут корректно идентифицированы и записаны в выходные файлы.Long.MAX_VALUE - Распознавание типа данных строки происходит благодаря использованию регулярных выражений.
Используемые библиотеки
Используемые сторонние библиотеки:
-
Lombok 1.18.38
Зависимость (Gradle): compileOnly("org.projectlombok:lombok:1.18.38")
annotationProcessor("org.projectlombok:lombok:1.18.38")
Ссылка: https://projectlombok.org/ -
Apache Commons CLI 1.9.0
Зависимость (Gradle): implementation("commons-cli:commons-cli:1.9.0")
Ссылка: https://commons.apache.org/proper/commons-cli/ -
JUnit Jupiter (JUnit 5) 5.10.0
Зависимость (Gradle): testImplementation(platform("org.junit:junit-bom:5.10.0"))
testImplementation("org.junit.jupiter:junit-jupiter")
Ссылка: https://junit.org/junit5/
Плагины Gradle:
- Java Plugin
- Shadow Plugin 8.1.1
Зависимость: id("com.github.johnrengelman.shadow") version "8.1.1"
Ссылка: https://github.com/johnrengelman/shadow
Использование
Сборка и запуск
Разработка и тестирование проводились на Java 23 и Gradle 8.14.2.
Параметры запуска
Флаг, если передан, то выходные файлы надо добавлять
информацию, а не перезаписывать
Собрать полную статистику
Собрать краткую статистику
Абсолютный путь к папке в которую необходимо сохранить
результаты
Префикс в названии выходных файлов