Schreiben in eine Datei in Kotlin
1. Überblick
In diesem kurzen Tutorial lernen wir verschiedene Möglichkeiten kennen, wie Sie mithilfe von Kotlin-Erweiterungsmethoden Inhalte in eine Datei schreiben können - verfügbar in der Standardbibliothek.
2. KotlinFile Erweiterungen
Kotlin bietet verschiedene Möglichkeiten zum Schreiben in eine Datei in Form von Erweiterungsmethoden fürjava.io.File.
Wir werden einige davon verwenden, um verschiedene Möglichkeiten zu demonstrieren, wie wir dies mit Kotlin erreichen können:
-
writeText – lässt uns direkt aus einemString schreiben
-
writeBytes – ermöglicht es uns, direkt ausByteArray zu schreiben
-
printWriter – gibt uns einPrintWriter
-
MitbufferedWriter – können wir mitBufferedWriter schreiben
Lassen Sie uns sie genauer diskutieren.
3. Direkt schreiben
Das Schreiben inFile aus einer bestimmten Quelle ist die einfachste Strategie, die wir mit Kotlin-Erweiterungsmethoden erwarten können.
3.1. writeText
Wahrscheinlich die einfachste Erweiterungsmethode,writeText takes the content as a String argument and writes it directly into the specified file. Der angegebene Inhalt ist Text, der inUTF-8 (Standard) oder einem anderen angegebenencharset codiert ist:
File(fileName).writeText(fileContent)
Diese Methode delegiert intern anwriteBytes as, wie unten beschrieben. Zunächst wird der angegebene Inhalt mit dem angegebenen Zeichensatz in ein Array von Bytes konvertiert.
3.2. writeBytes
Ebenso können wir Bytes als Eingabe verwenden. The method writeBytes takes a ByteArray as an argument and directly writes it into the specified file. Dies ist nützlich, wenn der Inhalt als Array von Bytes und nicht als einfacher Text vorliegt.
File(fileName).writeBytes(fileContentAsArray)
Wenn die angegebene Datei vorhanden ist, wird sie überschrieben.
4. Schreiben in einFile Verwenden von Writern
Kotlin bietet auch Erweiterungsmethoden an, die uns eine JavaWriter-Instanz liefern.
4.1. printWriter
If we’d like to use a Java PrintWriter, Kotlin provides a printWriter function exactly for this purpose. Damit können wir formatierte Darstellungen von Objekten aufOutputStream drucken:
File(fileName).printWriter()
Diese Methode gibt eine neuePrintWriter-Instanz zurück. Als nächstes können wir die Methodeuse nutzen, um damit: zu behandeln
File(fileName).printWriter().use { out -> out.println(fileContent) }
Mituse, kann swe eine Funktion für die Ressource ausführen, die nach Beendigung geschlossen wird. Die Ressource wird unabhängig davon geschlossen, ob die Funktion erfolgreich ausgeführt wurde oder eine Ausnahme ausgelöst hat.
4.2. bufferedWriter
Ebenso bietet Kotlin einebufferedWriter-Funktion, die uns eine JavaBufferedWriter. liefert
Dann können wir auf effizientere Weise Text in einen Zeichenausgabestream schreiben.
File(fileName).bufferedWriter()
Ähnlich wie beiPrintWriter gibt diese Funktion eine neueBufferedWriter-Instanz zurück, mit der wir später den Inhalt der Datei schreiben können.
File(fileName).bufferedWriter().use { out -> out.write(fileContent) }
5. Fazit
In diesem Artikel haben wir verschiedene Arten des Schreibens in eine Datei mithilfe der Kotlin-Erweiterungsmethoden gesehen.
Schließlich sind der Quellcode für diesen Artikel und die relevanten Testfälle in den folgendenGitHub repository verfügbar.