with操作符 也是将作用域转移到对象内部,对象不能为空
val bufferedReader = BufferedReader(FileReader("hello.txt"))
with(bufferedReader){
var line: String?
while (true){
//readLine是bufferedReader 的方法
line = readLine()?: break
println(line)
}
close()
}
use操作符 针对流操作,自带流关闭方法
BufferedReader(FileReader("hello.txt")).use {
var line: String?
while (true){
line = it.readLine()?: break
println(line)
}
}
其实kotlin里面封装了好多file的扩展方法
上面可以简化一句代码
File("hello.txt").readLines().forEach(::println)
![](https://img.haomeiwen.com/i15777351/af72597638f34b1a.png)
这里不再一一介绍
网友评论