Leider hat Kotlin selbst keine Ressourcen zum Ausprobieren. Stattdessen gibt es "use" als äquivalente Funktion (genau genommen Erweiterungsfunktion: Erweiterungsfunktion).
java
try (OutputStream ost = Files.newOutputStream(path)) {
FileCopyUtils.copy(inst, ost);
} catch (Exception e) {
e.printStackTrace();
}
Das ist ↓
kotlin
try {
Files.newOutputStream(path).use { ost ->
FileCopyUtils.copy(inst, ost)
}
} catch (e: Exception) {
e.printStackTrace()
}
Es wird so sein.
Wenn der Inhalt von "use" eine Zeile ist, wird er häufig ohne Zeilenumbrüche wie "Files.newOutputStream (path) .use {ost-> FileCopyUtils.copy (inst, ost)}" geschrieben. Ich mag Kotlin, weil es klarer geschrieben werden kann als Java.
Wenn Sie mehrere Ressourcen verwenden möchten, können Sie "use" verketten.
kotlin
try {
Files.newOutputStream(path).use { ost ->
Files.newInputStream(path).use { inst ->
FileCopyUtils.copy(inst, ost)
}
}
} catch (e: Exception) {
e.printStackTrace()
}
Wenn Sie zu viel verketten, ist das Nest tiefer.
Recommended Posts