Kotlin-擴充套件函式use,forEachLine(第一行程式碼Kotlin學習筆記番外)

頭髮濃密的猿先生發表於2021-01-04

1. use

use是Kotlin的一個內建的擴充套件函式,它能保證Lambda表示式中的程式碼全部執行完之後自動將外層的流關閉,這樣我們就不需要再寫一個finally語句,手動關閉流了。使用方法如下:

 fun save(inputText: String) {
        try {
            val output = openFileOutput("data", Context.MODE_PRIVATE)
            val writer = BufferedWriter(OutputStreamWriter(output))
            writer.use {
                it.write(inputText)
            }
        } catch (e: IOException) {
            e.printStackTrace()
        }
    }

2. forEachLine

將讀到的每行內容回掉到Lambda表示式中

fun load(): String {
    val content = StringBuilder()
    try {
        val input = openFileInput("data")
        val reader = BufferedReader(InputStreamReader(input))
        reader.use {
            reader.forEachLine {
                content.append(it)
            }
        }
    } catch (e: IOException) {
        e.printStackTrace()
    }
    return content.toString()
}




相關文章