Содержание
- Потоки ввода-вывода
- Четыре вида потоков
- Операции с потоками
- Исключения ввода-вывода
- Файловый ввод-вывод и преобразование потоков
- Классы файловых потоков
- Кодировки и преобразование потоков
- Фильтрующие потоки
- Фильтрация
- Буферизация
- Дополнительные возможности потоков
- Эмуляция чтения и записи
- Конкатенация потоков ввода
- Подавление ошибок
- Расширенный ввод-вывод
- Платформонезависимый ввод-вывод
- Файлы с произвольным доступом
- Классы System и Console
- Дескрипторы файлов
- Файлы, каталоги, пути и разделители
- Операции с отдельными файлами
- Листинг каталогов
- Ввод-вывод в Java 7
- Файловые системы и пути
- Операции с отдельными файлами
- Листинг каталогов
- Ввод-вывод и исключения
- Идиома работы с ресурсами
- Работа с несколькими потоками
Примеры
zipДомашнее задание 1. Обход файлов
-
Разработайте класс
Walk
, осуществляющий подсчет хеш-сумм файлов.-
Формат запуска:
java Walk <входной файл> <выходной файл>
- Входной файл содержит список файлов, которые требуется обойти.
-
Выходной файл должен содержать по одной строке для каждого файла.
Формат строки:
<шестнадцатеричная хеш-сумма> <путь к файлу>
- Для подсчета хеш-суммы используйте алгоритм Дженкинса.
- Если при чтении файла возникают ошибки, укажите в качестве его хеш-суммы все нули.
- Кодировка входного и выходного файлов — UTF-8.
- Размеры файлов могут превышать размер оперативной памяти.
-
Пример
Входной файл samples/1 samples/12 samples/123 samples/1234 samples/1 samples/binary samples/no-such-file
Выходной файл 806b80c9 samples/1 7401b0b6 samples/12 29b8dfb0 samples/123 ad414afe samples/1234 806b80c9 samples/1 ef2a46bd samples/binary 00000000 samples/no-such-file
-
Формат запуска:
-
Сложный вариант:
-
Разработайте класс
RecursiveWalk
, осуществляющий подсчет хеш-сумм файлов в директориях. - Входной файл содержит список файлов и директорий, которые требуется обойти. Обход директорий осуществляется рекурсивно.
-
Пример:
Входной файл samples/binary samples samples/no-such-file
Выходной файл ef2a46bd samples/binary 806b80c9 samples/1 7401b0b6 samples/12 29b8dfb0 samples/123 ad414afe samples/1234 ef2a46bd samples/binary 00000000 samples/such-file
-
Разработайте класс
-
При выполнении задания следует обратить внимание на:
- Дизайн и обработку исключений, диагностику ошибок.
- Программа должна корректно завершаться даже в случае ошибки.
- Корректная работа с вводом-выводом.
- Отсутствие утечки ресурсов.
- Возможность повторного использования кода.
-
Требования к оформлению задания.
- Проверяется исходный код задания.
-
Весь код должен находиться в пакете
info.kgeorgiy.ja.фамилия.walk
.