Menulis ke Fail di Kotlin

1. Gambaran keseluruhan

Dalam tutorial ringkas ini, kita akan belajar tentang pelbagai cara menulis kandungan ke dalam fail menggunakan kaedah peluasan Kotlin - tersedia di perpustakaan standardnya.

2. Sambungan Fail Kotlin

Kotlin menyediakan pelbagai cara menulis ke dalam fail dalam bentuk kaedah lanjutan untuk java.io.File .

Kami akan menggunakan beberapa kaedah ini untuk menunjukkan cara yang berbeza di mana kami dapat mencapainya dengan menggunakan Kotlin:

  • writeText - membolehkan kita menulis terus dari String
  • writeBytes - membolehkan kita menulis terus dari ByteArray
  • printWriter - memberi kami PrintWriter
  • bufferedWriter - membolehkan kita menulis menggunakan BufferedWriter

Mari kita bincangkan dengan lebih terperinci.

3. Menulis Secara Langsung

Menulis terus ke dalam Fail dari sumber tertentu adalah strategi termudah yang dapat kita harapkan dengan menggunakan kaedah peluasan Kotlin.

3.1. tulisTeks

Mungkin kaedah penyambungan paling mudah, w riteText mengambil kandungan sebagai argumen String dan menulisnya terus ke dalam fail yang ditentukan. Kandungan yang diberikan adalah teks yang dikodkan dalam UTF-8 (lalai) atau carset lain yang ditentukan:

File(fileName).writeText(fileContent)

Kaedah ini mewakilkan secara dalaman pada writeBytes seperti yang dijelaskan di bawah. Tetapi pertama, ia mengubah kandungan yang diberikan menjadi array byte menggunakan charset yang ditentukan.

3.2. tulisBait

Begitu juga, kita boleh menggunakan bait sebagai input. Kaedah writeBytes mengambil ByteArray sebagai argumen dan langsung menulisnya ke dalam fail yang ditentukan. Ini berguna apabila kita mempunyai kandungan sebagai susunan bait dan bukannya teks biasa.

File(fileName).writeBytes(fileContentAsArray)

Sekiranya fail yang diberikan ada, ia akan ditimpa.

4. Menulis ke dalam Fail Menggunakan Penulis

Kotlin juga menawarkan kaedah peluasan yang memberi kita contoh Java Writer.

4.1. printWriter

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

File(fileName).printWriter()

Kaedah ini mengembalikan contoh PrintWriter baru . Seterusnya, kita dapat memanfaatkan kaedah yang digunakan untuk mengatasinya :

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

Dengan penggunaan, kita dapat menjalankan fungsi pada sumber yang ditutup setelah penamatan. Sumber ditutup tanpa mengira sama ada fungsi itu berjaya dilaksanakan atau membuat pengecualian.

4.2. bufferedWriter

Begitu juga, Kotlin juga menyediakan fungsi bufferedWriter yang memberi kita Java BufferedWriter.

Kemudian, dengan itu, kita dapat menulis teks ke aliran output watak dengan cara yang lebih cekap.

File(fileName).bufferedWriter()

Mirip dengan PrintWriter , fungsi ini mengembalikan contoh BufferedWriter baru yang, kemudian, dapat kita gunakan untuk menulis kandungan fail.

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

5. Kesimpulan

Dalam artikel ini, kami melihat pelbagai cara menulis ke dalam fail menggunakan kaedah peluasan Kotlin.

Akhirnya, kod sumber untuk artikel ini dan kes ujian yang berkaitan boleh didapati di repositori GitHub berikut.