Данная утилита предназначена для фильтрации содержимого файлов, разделяя различные типы данных (целые числа, вещественные числа и строки) по отдельным выходным файлам. Утилита также предоставляет возможность сбора статистики по обработанным данным.
- Чтение входных файлов, указанных в командной строке.
- Фильтрация данных по типам:
- Целые числа
- Вещественные числа
- Строки
- Запись отфильтрованных данных в отдельные выходные файлы.
- Настройка пути и префикса для выходных файлов.
- Возможность добавления данных к существующим файлам.
- Сбор и вывод статистики (краткой или полной) по обработанным данным.
- Обработка ошибок и вывод информативных сообщений.
java -jar shift-1.0-SNAPSHOT.jar [опции] <входной_файл1> [<входной_файл2> ...]
-o <путь>
: задает путь для выходных файлов (по умолчанию - текущая директория)-p <префикс>
: задает префикс для имен выходных файлов-a
: режим добавления данных в существующие файлы (по умолчанию - перезапись)-s
: вывод краткой статистики-f
: вывод полной статистики
integers.txt
: целые числаfloats.txt
: вещественные числаstrings.txt
: строки
Префикс и путь могут быть изменены с помощью опций -p
и -o
соответственно.
- Количество элементов каждого типа
Для чисел:
- Количество элементов
- Минимальное значение
- Максимальное значение
- Сумма
- Среднее значение
Для строк:
- Количество строк
- Длина самой короткой строки
- Длина самой длинной строки
Утилита обрабатывает все возможные ошибки, включая:
- Отсутствие входных файлов
- Невозможность чтения входных файлов
- Невозможность записи в выходные файлы
- Некорректные опции командной строки
В случае ошибок выводятся информативные сообщения. При возможности продолжить выполнение, утилита обрабатывает оставшиеся данные.
- Java 21
- Apache Maven 3.8.1 или выше (для сборки проекта)
- Убедитесь, что у вас установлены Java 21 и Apache Maven 3.8.1 или выше
- Склонируйте репозиторий:
git clone https://github.com/kirshinn/shift.git
- Перейдите в директорию проекта:
cd shift
- Выполните сборку проекта:
mvn clean package
После сборки проекта, вы можете запустить утилиту следующим образом:
java -jar target/shift-1.0-SNAPSHOT.jar [опции] <входной_файл1> [<входной_файл2> ...]
-
Базовое использование:
java -jar target/shift-1.0-SNAPSHOT.jar input1.txt input2.txt
-
С указанием пути и префикса для выходных файлов:
java -jar target/shift-1.0-SNAPSHOT.jar -o /path/to/output -p result_ input1.txt input2.txt
-
С добавлением данных в существующие файлы и выводом полной статистики:
java -jar target/shift-1.0-SNAPSHOT.jar -a -f input1.txt input2.txt
Проект использует только стандартные библиотеки Java. Все зависимости управляются через Maven и определены в файле pom.xml
.