Giter Club home page Giter Club logo

shift's Introduction

Документация утилиты фильтрации содержимого файлов

Описание

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

Функциональные возможности

  1. Чтение входных файлов, указанных в командной строке.
  2. Фильтрация данных по типам:
    • Целые числа
    • Вещественные числа
    • Строки
  3. Запись отфильтрованных данных в отдельные выходные файлы.
  4. Настройка пути и префикса для выходных файлов.
  5. Возможность добавления данных к существующим файлам.
  6. Сбор и вывод статистики (краткой или полной) по обработанным данным.
  7. Обработка ошибок и вывод информативных сообщений.

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

Синтаксис команды

java -jar shift-1.0-SNAPSHOT.jar [опции] <входной_файл1> [<входной_файл2> ...]

Опции

  • -o <путь>: задает путь для выходных файлов (по умолчанию - текущая директория)
  • -p <префикс>: задает префикс для имен выходных файлов
  • -a: режим добавления данных в существующие файлы (по умолчанию - перезапись)
  • -s: вывод краткой статистики
  • -f: вывод полной статистики

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

  • integers.txt: целые числа
  • floats.txt: вещественные числа
  • strings.txt: строки

Префикс и путь могут быть изменены с помощью опций -p и -o соответственно.

Статистика

Краткая статистика (-s)

  • Количество элементов каждого типа

Полная статистика (-f)

Для чисел:

  • Количество элементов
  • Минимальное значение
  • Максимальное значение
  • Сумма
  • Среднее значение

Для строк:

  • Количество строк
  • Длина самой короткой строки
  • Длина самой длинной строки

Обработка ошибок

Утилита обрабатывает все возможные ошибки, включая:

  • Отсутствие входных файлов
  • Невозможность чтения входных файлов
  • Невозможность записи в выходные файлы
  • Некорректные опции командной строки

В случае ошибок выводятся информативные сообщения. При возможности продолжить выполнение, утилита обрабатывает оставшиеся данные.

Требования к системе

  • Java 21
  • Apache Maven 3.8.1 или выше (для сборки проекта)

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

  1. Убедитесь, что у вас установлены Java 21 и Apache Maven 3.8.1 или выше
  2. Склонируйте репозиторий: git clone https://github.com/kirshinn/shift.git
  3. Перейдите в директорию проекта: cd shift
  4. Выполните сборку проекта: mvn clean package

Запуск

После сборки проекта, вы можете запустить утилиту следующим образом:

java -jar target/shift-1.0-SNAPSHOT.jar [опции] <входной_файл1> [<входной_файл2> ...]

Примеры использования

  1. Базовое использование:

    java -jar target/shift-1.0-SNAPSHOT.jar input1.txt input2.txt
    
  2. С указанием пути и префикса для выходных файлов:

    java -jar target/shift-1.0-SNAPSHOT.jar -o /path/to/output -p result_ input1.txt input2.txt
    
  3. С добавлением данных в существующие файлы и выводом полной статистики:

    java -jar target/shift-1.0-SNAPSHOT.jar -a -f input1.txt input2.txt
    

Зависимости

Проект использует только стандартные библиотеки Java. Все зависимости управляются через Maven и определены в файле pom.xml.

shift's People

Contributors

kirshinn avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.