如何在 Kotlin 中正确使用 try-with-resources?
大家好!我正在从 Java 切换到 Kotlin,遇到了资源管理的问题。在 Java 中,我习惯使用 try-with-resources 来自动关闭流、文件等。例如,在 Java 中我会这样写:
```java
try (BufferedReader reader = new BufferedReader(new FileReader("file.txt"))) {
String line = reader.readLine();
// 处理
} catch (IOException e) {
e.printStackTrace();
}
```
在 Kotlin 中,我发现没有直接的 try-with-resources 对应物。我尝试过使用普通的 try-catch-finally,但这看起来很笨重:
```kotlin
val reader = BufferedReader(FileReader("file.txt"))
try {
val line = reader.readLine()
// 处理
} catch (e: IOException) {
e.printStackTrace()
} finally {
reader.close()
}
```
此外,如果我使用多个资源,代码会变得更加混乱。我听说过 use() 函数,但不确定如何正确使用它。请告诉我如何在 Kotlin 中优雅且安全地处理资源。