Skip to content

bgdnlmzn/file_util

Repository files navigation

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

  • Java 17
  • Gradle 8.5

Сторонние библиотеки

Эта библиотека используется для обработки аргументов командной строки.

dependencies {
    implementation 'com.beust:jcommander:1.82'
}

Эта библиотека используется для определения кодировки входных файлов.

dependencies {
    implementation 'com.ibm.icu:icu4j:75.1'
}

Note

Все выходные файлы создаются в кодировке UTF-8.

Система сборки

Проект использует систему сборки Gradle. Также в проекте используется плагин Shadow для создания fat JAR-файлов, которые включают все зависимости.

plugins {
    id 'com.gradleup.shadow' version '8.3.0'
}

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

  1. Клонируйте репозиторий и перейдите в корневую директорию проекта:
git clone https://github.com/bgdnlmzn/file_util.git
cd file_util
  1. Выполните следующую команду для сборки проекта и создания JAR-файла:
./gradlew build

или

gradlew build

Запуск утилиты

После сборки проекта JAR-файл будет создан в директории build/libs с именем util.jar. Для запуска утилиты используйте следующую команду:

java -jar build/libs/util.jar [опции] [файлы]

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

  1. С выводом краткой статистики и добавлением в существующие файлы:
java -jar build/libs/util.jar -s -a -p sample- in1.txt in2.txt
  1. С выводом полной статистики и указанием пути для результатов:
java -jar build/libs/util.jar -f -o /some/path -p result_ in1.txt in2.txt

Описание опций

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

Note

  • Если вы указываете файл без пути, например in1.txt, утилита предполагает, что этот файл находится в корневой директории проекта. Чтобы указать файл в другой директории, используйте полный путь, например "C:/files/in1.txt";
  • Если директория или имя файла содержит пробелы, обязательно указывайте путь в кавычках. Например: "C:/my files/in1.txt". Это предотвращает ошибки, связанные с неправильной интерпретацией пути;
  • Если вы указываете несуществующую директорию в параметре -o, например "C:/output/files", утилита автоматически создаст эту директорию. Однако, если вы укажете относительный путь, например "some/path", директория будет создана в корневой папке проекта.

Пример входных данных

  • Запуск утилиты
java -jar build/libs/util.jar -s -a -p sample- in1.txt in2.txt

in1.txt:

Lorem ipsum dolor sit amet
45
Пример
3.1415
consectetur adipiscing
-0.001
тестовое задание
100500

in2.txt:

Нормальная форма числа с плавающей запятой
1.528535047E-25
Long
1234567890123456789

Пример выходных данных

  • Краткая статистика(выводится в консоль):
Done!
Statistics for floats:
Amount: 3
Statistics for strings:
Amount: 6
Statistics for integers:
Amount: 3

Note

Краткая статистика содержит только количество элементов записанных в исходящие файлы. Полная статистика для чисел дополнительно содержит минимальное и максимальное значения, сумма и среднее. Полная статистика для строк, помимо их количества, содержит также размер самой короткой строки и самой длинной.

  • Файл sample-integers.txt:
45
100500
1234567890123456789
  • Файл sample-floats.txt:
3.1415
-0.001
1.528535047E-25
  • Файл sample-strings.txt:
Lorem ipsum dolor sit amet
Пример
consectetur adipiscing
тестовое задание
Нормальная форма числа с плавающей запятой
Long

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages