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)
}
}