finally 中带有 resource.close() 并可转换为 resource.use() 调用的 try-finally 块。
use() 更容易读取,且不易出错,因为无需显式 close() 调用。
示例:
fun example() {
val reader = File("file.txt").bufferedReader()
try {
reader.lineSequence().forEach(::print)
} finally {
reader.close()
}
}
在应用该快速修复后:
fun example() {
File("file.txt").bufferedReader().use { reader ->
reader.lineSequence().forEach(::print)
}
}