Menulis ke File di Kotlin

1. Ikhtisar

Dalam tutorial singkat ini, kita akan belajar tentang berbagai cara menulis konten ke dalam file menggunakan metode ekstensi Kotlin - tersedia di pustaka standarnya.

2. Ekstensi File Kotlin

Kotlin menyediakan berbagai cara penulisan ke dalam file dalam bentuk metode ekstensi untuk java.io.File .

Kami akan menggunakan beberapa di antaranya untuk mendemonstrasikan berbagai cara untuk mencapai hal ini menggunakan Kotlin:

  • writeText - memungkinkan kita menulis langsung dari String
  • writeBytes - memungkinkan kita untuk menulis langsung dari ByteArray
  • printWriter - memberi kita PrintWriter
  • bufferedWriter - memungkinkan kita menulis menggunakan BufferedWriter

Mari kita bahas lebih detail.

3. Menulis Langsung

Menulis langsung ke dalam File dari sumber tertentu adalah strategi paling sederhana yang dapat diharapkan menggunakan metode ekstensi Kotlin.

3.1. writeText

Mungkin metode ekstensi yang paling mudah, w riteText mengambil konten sebagai argumen String dan menulisnya langsung ke file yang ditentukan. Konten yang diberikan adalah teks yang dienkode dalam UTF-8 (default) atau rangkaian karakter tertentu lainnya:

File(fileName).writeText(fileContent)

Metode ini secara internal mendelegasikan di writeBytes seperti yang dijelaskan di bawah ini. Tapi pertama-tama, itu mengubah konten yang diberikan menjadi array byte menggunakan charset yang ditentukan.

3.2. writeBytes

Demikian juga, kita bisa menggunakan byte sebagai input. Metode writeBytes menggunakan ByteArray sebagai argumen dan langsung menulisnya ke dalam file yang ditentukan. Ini berguna ketika kita memiliki konten sebagai larik byte daripada teks biasa.

File(fileName).writeBytes(fileContentAsArray)

Jika file yang diberikan ada, itu akan ditimpa.

4. Menulis ke dalam File Menggunakan Penulis

Kotlin juga menawarkan metode ekstensi yang memberi kita instance Java Writer.

4.1. printWriter

Jika kita ingin menggunakan Java PrintWriter , Kotlin menyediakan fungsi printWriter untuk tujuan ini. Dengan itu, kita dapat mencetak representasi objek yang diformat ke OutputStream :

File(fileName).printWriter()

Metode ini mengembalikan contoh PrintWriter baru . Selanjutnya, kita dapat memanfaatkan metode yang digunakan untuk menanganinya :

File(fileName).printWriter().use { out -> out.println(fileContent) }

Dengan penggunaan, kita dapat menjalankan fungsi pada sumber daya yang ditutup setelah penghentian. Sumber daya ditutup terlepas dari apakah fungsi berhasil dijalankan atau dilempar pengecualian.

4.2. bufferedWriter

Selain itu, Kotlin juga menyediakan fungsi bufferedWriter yang menyediakan Java BufferedWriter untuk kita.

Kemudian, dengan itu, kita dapat menulis teks ke aliran keluaran karakter dengan cara yang lebih efisien.

File(fileName).bufferedWriter()

Mirip dengan PrintWriter , fungsi ini mengembalikan instance BufferedWriter baru yang nantinya bisa kita gunakan untuk menulis konten file.

File(fileName).bufferedWriter().use { out -> out.write(fileContent) }

5. Kesimpulan

Dalam artikel ini, kami melihat berbagai cara menulis ke dalam file menggunakan metode ekstensi Kotlin.

Terakhir, kode sumber untuk artikel ini dan kasus pengujian yang relevan tersedia di repositori GitHub berikut.