Arbeiten mit dem Dateisystem in Kotlin: Vollständiger Leitfaden

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einführung in die Arbeit mit dem Dateisystem in Kotlin



Die Arbeit mit dem Dateisystem ist eine der grundlegenden Aufgaben in der Softwareentwicklung. Kotlin, als moderne Sprache, bietet leistungsstarke und prägnante Werkzeuge zur Verwaltung von Dateien und Verzeichnissen. Dank der vollständigen Kompatibilität mit Java können Sie sowohl klassische Java-Bibliotheken (java.io.File, java.nio.file) als auch Kotlin-Erweiterungen verwenden, die den Code lesbarer und sicherer machen.



In diesem Artikel betrachten wir die grundlegenden Operationen mit dem Dateisystem in Kotlin: Erstellen, Lesen, Schreiben, Kopieren und Löschen von Dateien und Ordnern. Sie erfahren, wie Sie sowohl Standard-Java-Klassen als auch den Kotlin-Stil verwenden, um effizienten Code zu schreiben.



Grundlegende Klassen und Kotlin-Erweiterungen für die Dateiarbeit



Kotlin hat keine eigene separate Bibliothek für die Arbeit mit dem Dateisystem, bietet aber viele nützliche Erweiterungsfunktionen für die Klasse java.io.File. Diese Funktionen machen den Code kürzer und ausdrucksstärker. Nachfolgend sind die wichtigsten aufgeführt:



  • readText() — liest die gesamte Datei als String.
  • readLines() — liest die Datei zeilenweise und gibt eine Liste von Strings zurück.
  • writeText() — schreibt einen String in die Datei (überschreibt).
  • appendText() — fügt einen String am Ende der Datei hinzu.
  • bufferedReader() — gibt einen BufferedReader für effizientes Lesen zurück.
  • bufferedWriter() — gibt einen BufferedWriter für effizientes Schreiben zurück.
  • inputStream() und outputStream() — für die Arbeit mit Binärdaten.
  • copyTo() — kopiert eine Datei an einen anderen Ort.
  • deleteRecursively() — löscht rekursiv eine Datei oder ein Verzeichnis.


Beispiel zur Verwendung:

import java.io.File

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

// Text in die Datei schreiben file.writeText("Hallo, Kotlin!")

// Text aus der Datei lesen val content = file.readText() println(content) // Gibt aus: Hallo, Kotlin!

// Text anhängen file.appendText("Neue Zeile") println(file.readText())}


Verwendung von Java NIO (Path und Files)

Für komplexere Operationen wie Verschieben, Kopieren mit Optionen oder die Arbeit mit symbolischen Links wird die Verwendung von Java NIO (java.nio.file.Path und java.nio.file.Files) empfohlen. Kotlin unterstützt diese Klassen ebenfalls ohne Einschränkungen.



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 = "Text für NIO"

// Schreiben mit Files.write Files.write(path, content.toByteArray())

// Lesen mit Files.readAllLines val lines = Files.readAllLines(path) lines.forEach { println(it) }}


Lesen und Schreiben von Dateien: Best Practices



Bei der Arbeit mit Dateien ist es wichtig, die Datengröße und potenzielle Fehler (z. B. fehlende Datei oder fehlende Zugriffsrechte) zu berücksichtigen. Kotlin bietet bequeme Möglichkeiten zur Ausnahmebehandlung mit use und runCatching.



Lesen großer Dateien

Für das Lesen großer Dateien (mehrere Megabyte) wird die Verwendung von readText() nicht empfohlen, da es die gesamte Datei in den Speicher lädt. Verwenden Sie stattdessen eine Streaming-Verarbeitung:



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) { // Jede Zeile verarbeiten println(line) } }}


Die Konstruktion

Blogs

Buchempfehlungen