[JAVA] Le gars qui essaie avec des ressources avec Kotlin

Conclusion soudaine

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.

En cas de ressources multiples

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.

référence

Recommended Posts

Le gars qui essaie avec des ressources avec Kotlin
Le gars qui fait la réplication de session avec Tomcat
Le gars qui ne peut pas gérer les erreurs dans le flux
Un gars de merde qui fait des ajustements de mise en page sobres et efficaces avec le développement de libGDX
Trouvez le nombre de jours dans un mois avec Kotlin
Changer de port avec SpringBoot
Mock le constructeur avec PowerMock
J'ai lu le livre de démarrage de Kotlin
Avec l'erreur Cordova-> Looper.prepare ()
Je veux revenir à l'écran précédent avec kotlin et java!