Travailler avec le système de fichiers en Kotlin : guide complet

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course
```html

Introduction au travail avec le système de fichiers en Kotlin



Le travail avec le système de fichiers est l'une des tâches fondamentales du développement logiciel. Kotlin, en tant que langage moderne, offre des outils puissants et concis pour gérer les fichiers et les répertoires. Grâce à sa compatibilité totale avec Java, vous pouvez utiliser à la fois les bibliothèques Java classiques (java.io.File, java.nio.file) et les extensions Kotlin, qui rendent le code plus lisible et plus sûr.



Dans cet article, nous allons examiner les opérations de base avec le système de fichiers en Kotlin : création, lecture, écriture, copie et suppression de fichiers et de dossiers. Vous apprendrez à utiliser à la fois les classes Java standard et le style Kotlin pour écrire un code efficace.



Classes principales et extensions Kotlin pour travailler avec les fichiers



Kotlin n'a pas sa propre bibliothèque séparée pour travailler avec le système de fichiers, mais il fournit de nombreuses fonctions d'extension utiles pour la classe java.io.File. Ces fonctions rendent le code plus concis et plus expressif. Voici les plus importantes d'entre elles :



  • readText() — lit tout le fichier sous forme de chaîne de caractères.
  • readLines() — lit le fichier ligne par ligne et retourne une liste de chaînes.
  • writeText() — écrit une chaîne dans un fichier (écrase le contenu).
  • appendText() — ajoute une chaîne à la fin du fichier.
  • bufferedReader() — retourne un BufferedReader pour une lecture efficace.
  • bufferedWriter() — retourne un BufferedWriter pour une écriture efficace.
  • inputStream() et outputStream() — pour travailler avec des données binaires.
  • copyTo() — copie un fichier vers un autre emplacement.
  • deleteRecursively() — supprime récursivement un fichier ou un répertoire.


Exemple d'utilisation :

import java.io.File

fun main() { val file = File("example.txt")

// Écrire du texte dans un fichier file.writeText("Bonjour, Kotlin!")

// Lire le texte depuis un fichier val content = file.readText() println(content) // Affichera : Bonjour, Kotlin!

// Ajouter du texte file.appendText("Nouvelle ligne") println(file.readText())}


Utilisation de Java NIO (Path et Files)

Pour des opérations plus complexes, comme le déplacement, la copie avec options ou le travail avec des liens symboliques, il est recommandé d'utiliser Java NIO (java.nio.file.Path et java.nio.file.Files). Kotlin supporte également ces classes sans aucune limitation.



import java.nio.file.Filesimport java.nio.file.Pathimport java.nio.file.Paths

fun main() { val path: Path = Paths.get("nio_example.txt") val content = "Texte pour NIO"

// Écrire avec Files.write Files.write(path, content.toByteArray())

// Lire avec Files.readAllLines val lines = Files.readAllLines(path) lines.forEach { println(it) }}


Lecture et écriture de fichiers : meilleures pratiques



Lors du travail avec des fichiers, il est important de prendre en compte la taille des données et les erreurs potentielles (par exemple, fichier inexistant ou droits d'accès). Kotlin fournit des moyens pratiques de gérer les exceptions avec use et runCatching.



Lecture de gros fichiers

Pour lire de gros fichiers (plus de quelques mégaoctets), il n'est pas recommandé d'utiliser readText(), car il charge tout le fichier en mémoire. Utilisez plutôt un traitement par flux :



import java.io.File

fun readLargeFile(filePath: String) { val file = File(filePath) file.bufferedReader().use { reader -> var line: String? while (reader.readLine().also { line = it } != null) { // Traiter chaque ligne println(line) } }}


La construction

Blogs

Book Recommendations