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

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 lors du développement d'applications en Kotlin. Que ce soit une application console, un projet serveur ou une application mobile Android, vous aurez presque certainement besoin de lire, écrire, déplacer ou supprimer des fichiers. Kotlin, en tant que langage moderne fonctionnant sur la JVM, offre toutes les possibilités de la bibliothèque standard Java, tout en ajoutant ses propres extensions pratiques et du sucre syntaxique.



Dans cet article, nous allons détailler comment travailler efficacement avec le système de fichiers en Kotlin. Vous apprendrez à créer et supprimer des fichiers et des répertoires, lire et écrire des données, parcourir les répertoires et gérer les exceptions. Tous les exemples de code seront écrits en Kotlin pur sans utiliser de bibliothèques tierces.



Classes principales et approches



En Kotlin, deux API principales sont utilisées pour travailler avec le système de fichiers :



  • java.io.File — l'API classique de Java, que Kotlin enrichit avec ses fonctions d'extension.
  • java.nio.file.Path et java.nio.file.Files — une API plus moderne et fonctionnelle issue de Java NIO.


Les deux approches sont entièrement compatibles avec Kotlin, mais la seconde (NIO) est recommandée pour les nouveaux projets car elle offre des possibilités plus riches et de meilleures performances.



Création de fichiers et de répertoires



Commençons par le plus simple — la création d'un fichier. En Kotlin, cela se fait de manière très concise :



import java.io.File

fun main() { val file = File("example.txt") // Création du fichier (retourne true si le fichier a été créé) val created = file.createNewFile() if (created) { println("Fichier créé : ${file.absolutePath}") } else { println("Le fichier existe déjà") } // Création d'un répertoire val dir = File("myDirectory") val dirCreated = dir.mkdir() // ou mkdirs() pour créer des répertoires imbriqués println("Répertoire créé : $dirCreated")}


Notez la méthode mkdirs() — elle créera tous les répertoires parents manquants, contrairement à mkdir() qui ne crée que le dernier répertoire du chemin.



Lecture de fichiers



Kotlin offre des extensions élégantes pour lire le contenu des fichiers. Examinons plusieurs façons :



import java.io.File

fun readExamples() { val file = File("data.txt") // Lecture de tout le fichier dans une chaîne val content: String = file.readText() println("Contenu du fichier :$content") // Lecture ligne par ligne dans une liste val lines: List<String> = file.readLines() lines.forEach { println("Ligne : $it") } // Lecture de tous les octets val bytes: ByteArray = file.readBytes() println("Taille du fichier : ${bytes.size} octets") // Lecture avec Buffered (pour les gros fichiers) file.forEachLine { line -> println("Traitement de la ligne : $line") }}


Pour les gros fichiers, il est préférable d'utiliser forEachLine ou bufferedReader() afin de ne pas charger tout le fichier en mémoire.



Écriture dans les fichiers



L'écriture de données dans un fichier est également intuitive :



import java.io.File

fun writeExamples() { val file = File("output.txt") // Écriture d'une chaîne (remplace le fichier) file.writeText("Bonjour, Kotlin!Deuxième ligne") // Ajout à la fin du fichier file.appendText("Troisième ligne (ajoutée)") // Écriture d'une liste de chaînes val lines = listOf("Ligne 1", "Ligne 2", "Ligne 3") file.writeText(lines.joinToString("")) // Écriture d'octets val data = byteArrayOf(72, 101, 108, 108, 111) // "Hello" en ASCII file.writeBytes(data)}


Si vous avez besoin de plus de contrôle (par exemple, spécifier l'encodage), utilisez

Blogs

Book Recommendations