Из Kotlin документации:
Выполняет указанную функцию блокировки для этого ресурса и затем корректно закрывает ее, независимо от того, сгенерировано исключение.
Когда вы используете объект, который реализует интерфейс Closeable , вам нужно вызвать метод close () , когда вы закончите с ним, чтобы он высвобождал любые системные ресурсы, связанные с объектом.
Вы должны быть осторожны и закрывать его, даже когда выдается исключение. В такой ситуации, которая подвержена ошибкам, потому что вы можете не знать или забыть обращаться с ней должным образом, лучше автоматизировать этот шаблон. Это именно то, что делает функция use .