Українська
Підсумки
Висновки
Файл є послідовністю байтів, а її зміст визначає узгоджений формат: кодування, порядок полів, версія та допустимі розміри. Path і Files з NIO.2 будують шляхи й виконують файлові операції, причому відносний шлях залежить від робочого каталогу процесу. Байтові потоки працюють із байтами, символьні – із символами, а перехід між ними потребує явного кодування, зазвичай UTF-8. Ресурси закривають через try-with-resources, а читання в буфер враховує фактично отриману кількість байтів. Перевірка існування не замінює обробки фактичної відмови операції, а обхід каталогів і розпакування архівів потребують контролю меж, посилань і розмірів. Надійне оновлення записує тимчасовий файл і лише після перевірки переміщує його до цілі. Стандартна серіалізація зберігає граф об’єктів, але не повторює валідацію конструктора, тому відновлений стан перевіряють, а для недовірених даних обирають інший формат. Файлову програму тестують в окремому тимчасовому каталозі на звичайних, порожніх, неправильних і обірваних даних.
Підсумкові запитання
- Чим normalize відрізняється від toRealPath?
- Чому ресурс закривають навіть після винятку?
- Коли потрібен байтовий потік, а коли Reader?
- Який контракт дозволяє простий split у CSV-прикладі?
- Чому Files.walk потрібно закривати?
- Що не гарантує ATOMIC_MOVE на довільному провайдері?
- Чому Serializable не виконує всю предметну валідацію?
- Які обмеження має ObjectInputFilter?