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
Lesen Sie auch
So erstellen Sie eine Verzögerung in Swift: 5 bewährte Methoden
Wie man ein PHP-Vorstellungsgespräch besteht: Fortgeschrittene Fragen und Antworten
Datenparsing und Scraping mit PHP: Vom Einfachen zum Professionellen
So beheben Sie den dyld-Fehler mit libicui18n.62.dylib nach der Node-Installation über Brew auf dem Mac
Integrationstests von Go mit Docker: von A bis Z