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 bei der Entwicklung von Anwendungen in Kotlin. Ob Konsolenanwendung, Serverprojekt oder mobile App unter Android – fast immer müssen Sie Dateien lesen, schreiben, verschieben oder löschen. Kotlin, als moderne Sprache, die auf der JVM läuft, bietet alle Möglichkeiten der Standard-Java-Bibliothek, fügt aber gleichzeitig eigene praktische Erweiterungen und syntaktischen Zucker hinzu.



In diesem Artikel werden wir im Detail besprechen, wie man effizient mit dem Dateisystem in Kotlin arbeitet. Sie erfahren, wie Sie Dateien und Verzeichnisse erstellen und löschen, Daten lesen und schreiben, Verzeichnisse durchlaufen und Ausnahmen behandeln. Alle Codebeispiele werden in reinem Kotlin ohne Verwendung von Drittanbieter-Bibliotheken geschrieben.



Grundlegende Klassen und Ansätze



In Kotlin werden für die Arbeit mit dem Dateisystem zwei Haupt-APIs verwendet:



  • java.io.File – die klassische API aus Java, die Kotlin mit eigenen Erweiterungsfunktionen erweitert.
  • java.nio.file.Path und java.nio.file.Files – eine modernere und funktionalere API aus Java NIO.


Beide Ansätze sind vollständig mit Kotlin kompatibel, aber der zweite (NIO) wird für neue Projekte empfohlen, da er umfangreichere Möglichkeiten und eine bessere Leistung bietet.



Erstellen von Dateien und Verzeichnissen



Beginnen wir mit dem Einfachsten – dem Erstellen einer Datei. In Kotlin geht das sehr prägnant:



import java.io.File

fun main() { val file = File("example.txt") // Datei erstellen (gibt true zurück, wenn die Datei erstellt wurde) val created = file.createNewFile() if (created) { println("Datei erstellt: ${file.absolutePath}") } else { println("Datei existiert bereits") } // Verzeichnis erstellen val dir = File("myDirectory") val dirCreated = dir.mkdir() // oder mkdirs() zum Erstellen verschachtelter Verzeichnisse println("Verzeichnis erstellt: $dirCreated")}


Beachten Sie die Methode mkdirs() – sie erstellt alle fehlenden übergeordneten Verzeichnisse, im Gegensatz zu mkdir(), das nur das letzte Verzeichnis im Pfad erstellt.



Lesen von Dateien



Kotlin bietet elegante Erweiterungen zum Lesen von Dateiinhalten. Betrachten wir mehrere Möglichkeiten:



import java.io.File

fun readExamples() { val file = File("data.txt") // Gesamte Datei als String lesen val content: String = file.readText() println("Dateiinhalt:$content") // Zeilenweise in eine Liste lesen val lines: List<String> = file.readLines() lines.forEach { println("Zeile: $it") } // Alle Bytes lesen val bytes: ByteArray = file.readBytes() println("Dateigröße: ${bytes.size} Bytes") // Lesen mit Buffered (für große Dateien) file.forEachLine { line -> println("Verarbeite Zeile: $line") }}


Für große Dateien ist es besser, forEachLine oder bufferedReader() zu verwenden, um nicht die gesamte Datei in den Speicher zu laden.



Schreiben in Dateien



Das Schreiben von Daten in eine Datei ist ebenfalls intuitiv:



import java.io.File

fun writeExamples() { val file = File("output.txt") // String schreiben (überschreibt die Datei) file.writeText("Hallo, Kotlin!Zweite Zeile") // An das Ende der Datei anhängen file.appendText("Dritte Zeile (angefügt)") // Liste von Strings schreiben val lines = listOf("Zeile 1", "Zeile 2", "Zeile 3") file.writeText(lines.joinToString("")) // Bytes schreiben val data = byteArrayOf(72, 101, 108, 108, 111) // "Hello" in ASCII file.writeBytes(data)}


Wenn Sie mehr Kontrolle benötigen (z. B. um die Kodierung anzugeben), verwenden Sie

Blogs

Buchempfehlungen