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()etoutputStream()— 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
Lire aussi