Домашнее задание 1. Обход файлов
-
Разработайте класс
Walk
, осуществляющий подсчет хэш-сумм файлов.-
Формат запуска:
java Walk <входной файл> <выходной файл>
- Входной файл содержит список файлов, которые требуется обойти.
-
Выходной файл должен содержать по одной строке для каждого файла.
Формат строки:
<шестнадцатеричная хэш-сумма> <путь к файлу>
- Для подсчета хэш-суммы используйте последние 64 бита SHA-256 (поддержка есть в стандартной библиотеке). .
- Если при чтении файла возникают ошибки, укажите в качестве его хэш-суммы все нули.
- Кодировка входного и выходного файлов — UTF-8.
- Размеры файлов могут превышать размер оперативной памяти.
-
Пример
Входной файл samples/1 samples/12 samples/123 samples/1234 samples/1 samples/binary samples/no-such-file
Выходной файл 6b86b273ff34fce1 samples/1 6b51d431df5d7f14 samples/12 a665a45920422f9d samples/123 03ac674216f3e15c samples/1234 6b86b273ff34fce1 samples/1 40aff2e9d2d8922e samples/binary 0000000000000000 samples/no-such-file
-
Формат запуска:
-
Сложный вариант:
-
Разработайте класс
RecursiveWalk
, осуществляющий подсчет хэш-сумм файлов в директориях. - Входной файл содержит список файлов и директорий, которые требуется обойти. Обход директорий осуществляется рекурсивно.
-
Пример:
Входной файл samples/binary samples samples/no-such-file
Выходной файл 40aff2e9d2d8922e samples/binary 6b86b273ff34fce1 samples/1 6b51d431df5d7f14 samples/12 a665a45920422f9d samples/123 03ac674216f3e15c samples/1234 40aff2e9d2d8922e samples/binary 0000000000000000 samples/such-file
-
Разработайте класс
-
При выполнении задания следует обратить внимание на:
- Дизайн и обработку исключений, диагностику ошибок.
- Программа должна корректно завершаться даже в случае ошибки.
- Корректная работа с вводом-выводом.
- Отсутствие утечки ресурсов.
- Возможность повторного использования кода.
-
Требования к оформлению задания.
- Проверяется исходный код задания.
-
Весь код должен находиться в пакете
info.kgeorgiy.ja.фамилия.walk
.