Как управлять ресурсами в Kotlin

«Как управлять ресурсами в Kotlin» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Kotlin для управления ресурсами (файлы, соединения и т.д.) лучше всего использовать use() – extension-функцию для Closeable/AutoCloseable. Она автоматически закроет ресурс после выполнения блока, даже если произошло исключение.

FileInputStream("file.txt").use { input ->
    // работа с input
} // ресурс закроется автоматически

Для нескольких ресурсов:

FileInputStream("input.txt").use { input ->
    FileOutputStream("output.txt").use { output ->
        input.copyTo(output)
    }
}

Альтернатива – try-with-resources (в Kotlin через use()). Главное преимущество – безопасность: ресурс гарантированно закроется, код становится чище, не нужно писать finally-блоки.