Kotlin 读取文件,可以很简单。比如,在读取一些小文件的时候,可以这样写
/** 直接一行一行的读取文件全部内容
@Author: Jian Junbo
@Date: 2017/12/8 14:14
@Param:
*/
fun myIO1(){
val file = File("build.gradle")
// println(file.readLines()) //一行输出
file.readLines().forEach(::println) //逐行输出
}
可以运行比较一下,直接 readLines() 和 forEach() 输出的差别。
当然,想再简单点也不是没有办法。
/** 全文本直接读取文件
@Author: Jian Junbo
@Date: 2017/12/8 14:28
@Param:
*/
fun myIO2(){
val file = File("build.gradle")
println(file.readText())
}
如果是中规中矩的写法,就是读较大的文件也是没有问题的。
/** 逐行读取逐行输出的读取方式
@Author: Jian Junbo
@Date: 2017/12/8 14:28
@Param:
*/
fun myIO3(){
val file = File("build.gradle")
val bufferedReader = BufferedReader(FileReader(file))
var line:String
while (true){
line = bufferedReader.readLine()?:break
println(line)
}
bufferedReader.close()
}
这里经常会忘记 close(),所以要注意这一点。
也有省事儿的办法,完全不用去考虑 close() ,因为有 use 这个方法。它已经帮你做了这些。
/** 使用use,不用考虑close的逐行读取逐行输出的读取方式
@Author: Jian Junbo
@Date: 2017/12/8 14:28
@Param:
*/
fun myIO4(){
val file = File("build.gradle")
BufferedReader(FileReader(file)).use {
var line: String
while (true){
line = it.readLine()?:break
println(line)
}
}
}
网友评论