Skip to content

SanTsigan/SHIFT_Java_Test_Task_2025

Repository files navigation

Утилита фильтрации содержимого файлов.

Консольная утилита на Java для фильтрации содержимого файлов по типам данных (целые числа, вещественные числа, строки) и сохранения их в отдельные выходные файлы.

Возможности

  • Фильтрация входных фалов по типам данных (целые числа, вещественные числа, строки)
  • Сохранение отфильтрованного содержимого в отдельные выходные файлы
  • Поддержка пользовательского пути вывода и префикса имен фалов
  • Предоставление статистики (краткой или полной) по отфильтрованным данным
  • Корректная обработка ошибок без аварийного завершения
  • Режим добавления к существующим файлам
  • Автоматическое создание выходных директорий

Требования

  • Java 11 или выше
  • Gradle 6.0 или выше (для сборки)

Сборка проекта

./gradlew clean build

Это создаст исполняемый JAR файл в build/libs/content-filter-1.0.0.jar

Использование

java -jar build/libs/content-filter-1.0.0.jar [опции] входной-файл1 [входной-файл2 ...]

Опции

  • -o, --output ПУТЬ - Путь для результатов (по умолчанию текущая директория)
  • -p, --prefix ПРЕФИКС - Префикс имен выходных фалов
  • -a, --append - Режим добавления к существующим файлам (по умолчанию перезапись)
  • -s, --stats - Вывод полной статистики (только количество)
  • -h, --help - Показать справку

Выходные файлы

  • integers.txt - Содержит целые числа
  • floats.txt - Содержит вещественные числа
  • strings.txt - Содержит текстовые строки
  • Имена файлов можно настроить с помощью опции -p
  • Расположение файлов можно настроить с помощью опции -o

Примеры

# Базовое исполнение с краткой статистикой
java -jar build/libs/content-filter-1.0.0.jar -s in1.txt in2.txt

# Полная статистика с пользовательской директорией вывода и префиксом
java -jar build/libs/content-filter-1.0.0.jar -f -o /path/to/output -p result_ in1.txt in2.txt

# Режим добавления с краткой статистикой
java -jar build/libs/content-filter-1.0.0.jar -a -s in1.txt in2.txt

# Показать справку
java -jar build/libs/content-filter-1.0.0.jar -h

Зависимости

Особенности реализации

  • Используется Apache Commons CLI для парсинга аргументов командной строки
  • Корректная обработка ошибок - программа не аварийно завершается при ошибках
  • Частичная обработка - если один из входных файлов недоступен, остальные всё равно обрабатываются
  • Автоматическое создание выходных директорий
  • Пустые выходные файлы автоматически удаляются
  • Поддержка больших целых чисел (тип Long)
  • Поддержка экспоненциальной записи вещественных чисел
  • Правильное определение типов данных (целое число vs вещественное число)

About

Тестовое задание для поступления на ШИФТ курс направления "Java"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages