Разбираем разницу между текстовыми и бинарными файлами, базовые потоки байтов
InputStream/
OutputStream и их файловые реализации (
FileInputStream,
FileOutputStream). Пишем копирование с буфером, обсуждаем скорость чтения по одному байту vs блоками, запись массивов байтов через
write(), нюансы
try-with-resources, выбор размера буфера
4–
16 КБ, безопасное использование
readAllBytes() и типичные ошибки (например, применение
FileReader/
FileWriter к бинарным данным).