Malheureusement, kotlin n'a pas lui-même d'essayer avec des ressources. Au lieu de cela, il y a ʻuse` comme fonction équivalente (à proprement parler, fonction d'extension: fonction d'extension).
java
try (OutputStream ost = Files.newOutputStream(path)) {
    FileCopyUtils.copy(inst, ost);
} catch (Exception e) {
    e.printStackTrace();
}
C'est ↓
kotlin
try {
    Files.newOutputStream(path).use { ost ->
        FileCopyUtils.copy(inst, ost)
    }
} catch (e: Exception) {
    e.printStackTrace()
}
Ce sera comme ça.
Personnellement, si le contenu de ʻuse est une ligne, il est souvent écrit sans sauts de ligne comme Files.newOutputStream (chemin) .use {ost-> FileCopyUtils.copy (inst, ost)} `.
J'aime kotlin car il peut être écrit plus clairement que java.
Si vous souhaitez utiliser plusieurs ressources, vous pouvez chaîner ʻuse`.
kotlin
try {
    Files.newOutputStream(path).use { ost ->
        Files.newInputStream(path).use { inst ->
            FileCopyUtils.copy(inst, ost)
        }
    }
} catch (e: Exception) {
    e.printStackTrace()
}
Si vous enchaînez trop, le nid sera plus profond.
Recommended Posts