Kotlin中的Try-with-resources
Kotlin 在記憶體管理方面非常高效。與 Java 不同,Kotlin 開發者無需顯式管理記憶體。我們有不同型別的記憶體管理技術,而**Try-with-resource** 就是其中之一。在 Kotlin 中,我們有一個名為“**use**”的函式,它可以自動承擔管理資源的負擔。這是 Kotlin 提供的**標準庫**函式的一部分。
根據 Kotlin 文件,**use()** 被定義為所有可關閉型別上的泛型擴充套件。其實現如下所示:
public inline fun <T : Closeable?, R>T.use(block: (T) -> R): R {}在上圖函式中,定義塊是處理**可關閉**資源的函式。
**fun** 是函式呼叫,它返回**block** 函式的結果。
示例:use() 實現
在這個例子中,我們將看到如何使用 use() 函式來實現**try-with-resources**。我們將對**bufferedReader()** 使用**use()** 方法來讀取“**myFile.txt**”的內容。
import java.io.File
fun main(args: Array<String>) {
val readMyFile = File("myFile.txt")
readMyFile .bufferedReader().use{
println(it.readText())
}
}輸出
執行上述程式碼段後,它應該讀取檔案物件中提供的所有檔案內容。如果您在 Kotlin playground (https://play.kotlinlang.org/) 中執行它,它會丟擲安全異常,因為您沒有許可權從 playground 伺服器讀取。
Exception in thread "main" java.io.FileNotFoundException: myFile.txt (No such file or directory) at java.io.FileInputStream.open0(Native Method) at java.io.FileInputStream.open(FileInputStream.java:195) at java.io.FileInputStream.<init>(FileInputStream.java:138) at MainKt.main(main.kt:4)
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP