Ecrire dans un fichier dans Kotlin

1. Vue d'ensemble

Dans ce rapide didacticiel, nous découvrirons 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 fichier Kotlin

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

Nous en utiliserons plusieurs pour démontrer différentes façons dont nous pouvons y parvenir en utilisant Kotlin:

  • writeText - nous permet d'écrire directement à partir d'une chaîne
  • writeBytes - nous permet d'écrire directement à partir d'un ByteArray
  • printWriter - nous fournit un PrintWriter
  • bufferedWriter - nous permet d'écrire en utilisant un BufferedWriter

Discutons-en plus en détail.

3. Écrire directement

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

3.1. writeText

Probablement la méthode d'extension la plus simple, w riteText prend le contenu comme argument String et l'écrit directement dans le fichier spécifié. Le contenu donné est du texte encodé en UTF-8 (par défaut) ou tout autre jeu de caractères spécifié:

File(fileName).writeText(fileContent)

Cette méthode délègue en interne sur writeBytes comme 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. La méthode writeBytes prend un ByteArray comme argument et l'écrit directement dans le fichier spécifié. 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 un fichier à l' aide d'écrivains

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

4.1. printWriter

Si nous souhaitons utiliser un PrintWriter Java , Kotlin fournit une fonction printWriter exactement à cet effet. Avec lui, nous pouvons imprimer des représentations formatées d'objets sur un OutputStream :

File(fileName).printWriter()

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

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

Avec l' utilisation, nous pouvons exécuter une fonction sur la ressource qui se ferme après l'arrêt. La ressource est fermée indépendamment du fait que la fonction a été exécutée avec succès ou a levé une exception.

4.2. bufferedWriter

De même, Kotlin fournit également une fonction bufferedWriter qui nous fournit un Java BufferedWriter.

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

File(fileName).bufferedWriter()

Similaire à PrintWriter , cette fonction renvoie une nouvelle instance de BufferedWriter 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 façons d'écrire dans un fichier à l'aide des méthodes d'extension Kotlin.

Enfin, le code source de cet article et les cas de test pertinents sont disponibles dans le référentiel GitHub suivant.