Ecrire dans un fichier en Kotlin

Écrire dans un fichier en Kotlin

1. Vue d'ensemble

Dans ce rapide didacticiel, nous allons découvrir différentes manières d'écrire du contenu dans un fichier à l'aide des méthodes d'extension Kotlin, disponibles dans sa bibliothèque standard.

2. Extensions de KotlinFile

Kotlin fournit différentes manières d'écrire dans un fichier sous la forme de méthodes d'extension pourjava.io.File.

Nous allons utiliser plusieurs d'entre eux pour montrer différentes manières dont nous pouvons y parvenir en utilisant Kotlin:

  • writeText – nous permet d'écrire directement à partir d'unString

  • writeBytes – nous permet d'écrire directement à partir d'unByteArray

  • printWriter – nous fournit unPrintWriter

  • bufferedWriter – nous permet d'écrire en utilisant unBufferedWriter

Parlons-en plus en détail.

3. Écrire directement

Ecrire directement dans unFile  à partir d'une source donnée est la stratégie la plus simple à laquelle on puisse s'attendre en utilisant les méthodes d'extension Kotlin.

3.1. writeText

Probablement la méthode d'extension la plus simple,writeText takes the content as a String argument and writes it directly into the specified file. Le contenu donné est du texte encodé enUTF-8 (par défaut) ou tout autrecharset spécifié:

File(fileName).writeText(fileContent)

Cette méthode délègue en interne surwriteBytes as décrit ci-dessous. Mais d’abord, il convertit le contenu donné en un tableau d’octets en utilisant le jeu de caractères spécifié.

3.2. writeBytes

De même, nous pouvons utiliser des octets comme entrée. The method writeBytes takes a ByteArray as an argument and directly writes it into the specified file. Ceci est utile lorsque nous avons le contenu sous forme de tableau d'octets plutôt que de texte brut.

File(fileName).writeBytes(fileContentAsArray)

Si le fichier donné existe, il est écrasé.

4. Écriture dans unFile à l'aide d'écrivains

Kotlin propose également des méthodes d'extension qui nous fournissent une instance JavaWriter.

4.1. printWriter

If we’d like to use a Java PrintWriter, Kotlin provides a printWriter function exactly for this purpose. Avec lui, nous pouvons imprimer des représentations formatées d'objets dans unOutputStream:

File(fileName).printWriter()

Cette méthode renvoie une nouvelle instance dePrintWriter. Ensuite, nous pouvons profiter de la méthodeuse pour le gérer:

File(fileName).printWriter().use { out -> out.println(fileContent) }

Avecuse, , swe peut exécuter une fonction sur la ressource qui se ferme après l'arrêt. La ressource est fermée, que la fonction soit exécutée avec succès ou qu'une exception soit émise.

4.2. bufferedWriter

De même, Kotlin fournit également une fonctionbufferedWriter qui nous fournit un JavaBufferedWriter.

Ensuite, avec lui, nous pouvons écrire du texte dans un flux de sortie de caractères de manière plus efficace.

File(fileName).bufferedWriter()

Similaire àPrintWriter, cette fonction renvoie une nouvelle instance deBufferedWriter que nous pourrons utiliser ultérieurement pour écrire le contenu du fichier.

File(fileName).bufferedWriter().use { out -> out.write(fileContent) }

5. Conclusion

Dans cet article, nous avons vu différentes manières d'écrire dans un fichier à l'aide de méthodes d'extension Kotlin.

Enfin, le code source de cet article et les cas de test correspondants sont disponibles dans lesGitHub repository suivants.