Kotlinのファイルへの書き込み

Kotlinのファイルへの書き込み

1. 概要

このクイックチュートリアルでは、Kotlin拡張メソッドを使用してコンテンツをファイルに書き込むさまざまな方法について学習します。これは標準ライブラリで利用できます。

2. KotlinFile拡張機能

Kotlinは、java.io.Fileの拡張メソッドの形式でファイルに書き込むさまざまな方法を提供します。

これらのいくつかを使用して、Kotlinを使用してこれを実現するさまざまな方法を示します。

  • writeText – は、Stringから直接書き込むことができます

  • writeBytes –を使用すると、ByteArrayから直接書き込むことができます。

  • printWriter – PrintWriterを提供します

  • bufferedWriter –を使用すると、BufferedWriterを使用して書き込むことができます。

それらについてさらに詳しく説明しましょう。

3. 直接書く

特定のソースからFile に直接書き込むことは、Kotlin拡張メソッドを使用して期待できる最も簡単な戦略です。

3.1. writeText

おそらく最も簡単な拡張メソッド、writeText takes the content as a String argument and writes it directly into the specified file.指定されたコンテンツは、UTF-8(デフォルト)またはその他の指定されたcharsetでエンコードされたテキストです。

File(fileName).writeText(fileContent)

このメソッドは、以下で説明するように、writeBytes で内部的に委任します。 ただし、最初に、指定された文字セットを使用して、指定されたコンテンツをバイトの配列に変換します。

3.2. writeBytes

同様に、バイトを入力として使用できます。 The method writeBytes takes a ByteArray as an argument and directly writes it into the specified file.これは、内容がプレーンテキストではなくバイトの配列である場合に役立ちます。

File(fileName).writeBytes(fileContentAsArray)

指定されたファイルが存在する場合、そのファイルは上書きされます。

4. ライターを使用したFileへの書き込み

Kotlinは、JavaWriterインスタンスを提供する拡張メソッドも提供します。

4.1. printWriter

If we’d like to use a Java PrintWriter, Kotlin provides a printWriter function exactly for this purpose.これを使用すると、オブジェクトのフォーマットされた表現をOutputStreamに出力できます。

File(fileName).printWriter()

このメソッドは、新しいPrintWriterインスタンスを返します。 次に、メソッドuseを利用して:を処理できます。

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

use, weを使用すると、終了後に閉じられるリソースに対して関数を実行できます。 リソースは、関数が正常に実行されたか例外をスローしたかに関係なく閉じられます。

4.2. bufferedWriter

同様に、KotlinはJavaBufferedWriter.を提供するbufferedWriter関数も提供します

次に、それを使用して、より効率的な方法で文字出力ストリームにテキストを書き込むことができます。

File(fileName).bufferedWriter()

PrintWriterと同様に、この関数は新しいBufferedWriterインスタンスを返します。このインスタンスは、後でファイルのコンテンツを書き込むために使用できます。

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

5. 結論

この記事では、Kotlin拡張メソッドを使用してファイルに書き込むさまざまな方法を見ました。

最後に、この記事のソースコードと関連するテストケースは、次のGitHub repositoryで入手できます。