Фильтрация строк из входных файлов по типам: Целые числа → integers.txt
Вещественные числа → floats.txt
Строки → strings.txt
-o <путь> — указание директории для выходных файлов
-p <префикс> — добавление префикса к именам файлов
-a — режим добавления (append) к существующим файлам
-s — вывод краткой статистики (количество элементов)
-f — вывод полной статистики (мин/макс/сумма/среднее)
Java версия: 17+ Система сборки: Maven 3.x Сторонние библиотеки: стандартная библиотека Java (JDK), дополнительных зависимостей нет.
Убедись, что установлены Java 17+ и Maven и собери проект: mvn clean package
После этого .jar будет находиться в папке target/.
java -jar target/SHIFT-83278-1.0-SNAPSHOT.jar [опции] [входные_файлы]
Простой запуск:
java -jar target/SHIFT-83278-1.0-SNAPSHOT.jar in1.txt in2.txt(файлы тоже залиты для удобства запуска и тестирования приложения)
С опциями:
java -jar target/SHIFT-83278-1.0-SNAPSHOT.jar -s -a -p sample_ -o ./output in1.txt in2.txt Где:
-s — краткая статистика
-f — полная статистика
-a — добавлять к существующим файлам
-p sample_ — префикс для выходных файлов
-o ./output — директория для выходных файлов
Выходные файлы создаются только если есть соответствующие данные. Например, если указано -p sample_ и -o ./output, будут созданы:
./output/sample_integers.txt ./output/sample_floats.txt ./output/sample_strings.txt
Краткая (-s):
Integers: 3 Floats: 3 Strings: 2
Полная (-f): Для чисел:
Минимум Максимум Сумма Среднее
Для строк:
Количество Длина самой короткой строки Длина самой длинной строки
Для хранения параметров командной строки используется неизменяемый класс record CommandLineArgs. Все ошибки обрабатываются: несуществующие файлы, недостающие аргументы и т.д. Логирование ошибок в консоль. Проверка формата чисел выполняется с помощью Long.parseLong() и Double.parseDouble(). Если парсинг невозможен, строка считается текстом. Файлы создаются только при наличии соответствующих данных. Использован чистый ООП-подход: Разделены ответственности: логика работы с файлами, фильтрацией, статистикой и аргументами командной строки. Реализованы enum-ы, например FileType. Использованы try-with-resources для работы с файлами.