Schrijven naar een bestand in Kotlin
1. Overzicht
In deze korte tutorial leren we over verschillende manieren om inhoud in een bestand te schrijven met behulp van Kotlin-uitbreidingsmethoden - beschikbaar in de standaardbibliotheek.
2. Kotlin het dossier Extensies
Kotlin biedt verschillende manieren om in een bestand te schrijven in de vorm van uitbreidingsmethoden voor java.io.File.
We zullen verschillende hiervan gebruiken om verschillende manieren te demonstreren waarop we dit kunnen bereiken met Kotlin:
- writeText - laat ons rechtstreeks schrijven vanuit een Draad
- writeBytes - stelt ons in staat om rechtstreeks vanuit een ByteArray
- printWriter - geeft ons een PrintWriter
- bufferedWriter - stelt ons in staat om te schrijven met een BufferedWriter
Laten we ze in meer detail bespreken.
3. Direct schrijven
Rechtstreeks in een het dossier van een bepaalde bron is de eenvoudigste strategie die we kunnen verwachten met Kotlin-uitbreidingsmethoden.
3.1. writeText
Waarschijnlijk de meest eenvoudige uitbreidingsmethode, writeText neemt de inhoud als een Draad argument en schrijft het rechtstreeks in het opgegeven bestand. De opgegeven inhoud is tekst die is gecodeerd in UTF-8 (standaard) of een andere gespecificeerde tekenset:
Bestand (bestandsnaam) .writeText (fileContent)
Deze methode delegeert intern writeBytes zoals hieronder beschreven. Maar eerst converteert het de gegeven inhoud naar een array van bytes met behulp van de opgegeven tekenset.
3.2. writeBytes
Evenzo kunnen we bytes als invoer gebruiken. De methode writeBytes neemt een ByteArray als argument en schrijft deze rechtstreeks naar het opgegeven bestand. Dit is handig als we de inhoud hebben als een array van bytes in plaats van als platte tekst.
Bestand (bestandsnaam) .writeBytes (fileContentAsArray)
Als het opgegeven bestand bestaat, wordt het overschreven.
4. Schrijven in een het dossier Schrijvers gebruiken
Kotlin biedt ook uitbreidingsmethoden die ons voorzien van een Java Writer-instantie.
4.1. printWriter
Als we een Java PrintWriter, Kotlin biedt een printWriter precies voor dit doel functioneren. Hiermee kunnen we opgemaakte representaties van objecten afdrukken naar een OutputStream:
Bestand (bestandsnaam) .printWriter ()
Deze methode retourneert een nieuw PrintWriter voorbeeld. Vervolgens kunnen we profiteren van de methode gebruik om ermee om te gaan:
Bestand (bestandsnaam) .printWriter (). Gebruik {out -> out.println (fileContent)}
Met gebruik, we kunnen een functie uitvoeren op de bron die na beëindiging wordt gesloten. De bron is gesloten, ongeacht of de functie met succes is uitgevoerd of een uitzondering heeft veroorzaakt.
4.2. bufferedWriter
Evenzo biedt Kotlin ook een bufferedWriter functie die ons voorziet van een Java BufferedWriter.
Hiermee kunnen we op een efficiëntere manier tekst naar een tekenuitvoerstroom schrijven.
Bestand (bestandsnaam) .bufferedWriter ()
Gelijkwaardig aan PrintWriter, deze functie retourneert een nieuw BufferedWriter instantie die we later kunnen gebruiken om de inhoud van het bestand te schrijven.
Bestand (bestandsnaam) .bufferedWriter (). Gebruik {out -> out.write (fileContent)}
5. Conclusie
In dit artikel hebben we verschillende manieren gezien om in een bestand te schrijven met Kotlin-extensiemethoden.
Ten slotte zijn de broncode voor dit artikel en de relevante testcases beschikbaar in de volgende GitHub-repository.