- Java 17
- Gradle 8.5
- JCommander 1.82 ссылка
Эта библиотека используется для обработки аргументов командной строки.
dependencies {
implementation 'com.beust:jcommander:1.82'
}
- ICU4J 75.1 ссылка
Эта библиотека используется для определения кодировки входных файлов.
dependencies {
implementation 'com.ibm.icu:icu4j:75.1'
}
Note
Все выходные файлы создаются в кодировке UTF-8.
Проект использует систему сборки Gradle. Также в проекте используется плагин Shadow для создания fat JAR-файлов, которые включают все зависимости.
plugins {
id 'com.gradleup.shadow' version '8.3.0'
}
- Клонируйте репозиторий и перейдите в корневую директорию проекта:
git clone https://github.com/bgdnlmzn/file_util.git
cd file_util
- Выполните следующую команду для сборки проекта и создания JAR-файла:
./gradlew build
или
gradlew build
После сборки проекта JAR-файл будет создан в директории build/libs с именем util.jar. Для запуска утилиты используйте следующую команду:
java -jar build/libs/util.jar [опции] [файлы]
- С выводом краткой статистики и добавлением в существующие файлы:
java -jar build/libs/util.jar -s -a -p sample- in1.txt in2.txt
- С выводом полной статистики и указанием пути для результатов:
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