JavaRush
AI Academy
new
Акція
Університет
Java FullStack
Python FullStack
AI Native Developer
new
Навчання
Курси
Задачі
Опитування
Ігри
Допомога
Графік стусанів
Стажування
Спільнота
Користувачі
Форум
Чат
Статті
Історії успіху
Дії
Відгуки
Передплати
Світла тема

Лекції

  • Відгуки
  • Про нас
  • CS50
Почати
Почати навчання
Почати навчання
  • Моє навчання
  • Курси
  • Університет
  • Карта квестів
  • Лекції
  • I/O-помилки: IOException і FileNotFoundException

    Kotlin SELF
    45 рівень, 0 лекція
    Розберемося, чому файлові операції на JVM «ламаються», чому перевірка exists() не гарантує успіху, чим відрізняється «парасольковий» IOException від FileNotFoundException, як правильно будувати try/ catch (від конкретного до загального) і що саме друкувати для діагностики. Зокрема: операцію, шлях і властивості exists/ isFile/ isDirectory, щоб налагодження не перетворювалося на вгадування.
    Відкрита
  • Попередні перевірки перед читанням і записом: існування, тип, права, каталоги

    Kotlin SELF
    45 рівень, 1 лекція
    Розгляньмо практичні попередні перевірки для файлів у Kotlin/JVM: як перед читанням переконатися, що шлях існує, що це саме файл і що його можна читати ( exists(), isFile, canRead()), а перед записом — підготувати батьківський каталог через parentFile і mkdirs(). Окремо — швидка діагностика шляху та типові помилки (перевірка лише exists(), ігнорування результату mkdirs(), ілюзія гарантій від canWrite()).
    Відкрита
  • try/catch навколо файлових операцій

    Kotlin SELF
    45 рівень, 2 лекція
    Розбираємося, чому під час файлових операцій у Kotlin не можна покладатися лише на перевірки на кшталт exists() і навіщо навколо реального I/O все одно потрібні try/ catch. Вчимося робити «вузький» try навколо readText()/ writeText(), використовувати try як вираз, обирати контракт функції ( T?, Boolean або прокидання IOException), писати корисні повідомлення про помилки, правильно впорядковувати кілька catch і закривати ресурси через use {}.
    Відкрита
  • Atomic write: temp‑файл + renameTo як захист від часткового запису

    Kotlin SELF
    45 рівень, 3 лекція
    Розбираємо практичний протокол «atomic write» для збереження важливих даних у файл: чому прямий виклик writeText() під час перезапису може лишити «обрубок» у разі збою; як записати нову версію в temp‑файл поруч із цільовим, а потім «опублікувати» результат через renameTo(). Зберемо функцію atomicWriteText з try/ finally, обговоримо компроміси з видаленням target і типові помилки (temp не поруч, не перевіряти результат renameTo, ловити все підряд тощо).
    Відкрита
  • Backup і ротація: зберігаємо попередні версії перед заміною файлу

    Kotlin SELF
    45 рівень, 4 лекція
    Розбираємося, навіщо потрібен backup на додачу до atomic write, як зробити найпростішу копію .bak перед заміною файлу, чому ротацію копій потрібно виконувати «з кінця» та як скласти безпечний протокол збереження: rotateBackups → atomicWriteText. Наприкінці — схема процесу в mermaid і розбір типових помилок (порядок дій, ігнорування renameTo, нескінченні копії).
    Відкрита
Навчання
  • Курси програмування
  • Реєстрація
  • Курс Java
  • Допомога із задачами
  • Ціни
Спільнота
  • Користувачі
  • Статті
  • Форум
  • Чат
  • Історії успіху
  • Дії
Компанія
  • Про нас
  • Контакти
  • Відгуки
  • FAQ
  • Підтримка
JavaRush JavaRush — це інтерактивний онлайн-курс вивчення Java-програмування з нуля. Він містить 1200 практичних задач із перевіркою розв'язання одним клацанням, необхідний мінімум знань із теоретичних основ Java, а ще мотивувальні «фішки», які допоможуть пройти курс до кінця: ігри, опитування, цікаві проєкти й статті про ефективне навчання та кар'єру Java‑девелопера.
Підписуйтесь
Мова інтерфейсу
Русский English
Українська
Програмістами не народжуються © 2026 JavaRush
MastercardVisa
Програмістами не народжуються © 2026 JavaRush