1. 概要

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

2. Kotlinファイル拡張機能

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

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

  • writeText – Stringから直接書き込むことができます
  • writeBytes – を使用すると、ByteArrayから直接書き込むことができます。
  • printWriter –PrintWriterを提供します
  • bufferedWriter – を使用すると、BufferedWriterを使用して書き込むことができます

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

3. 直接書く

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

3.1. writeText

おそらく最も簡単な拡張メソッドであるwriteTextは、コンテンツをString引数として受け取り、指定されたファイルに直接書き込みます。指定されたコンテンツは、 UTF-8 (デフォルト)またはその他の指定されたcharset

File(fileName).writeText(fileContent)

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

3.2. writeBytes

同様に、バイトを入力として使用できます。 メソッドwriteBytesは、引数としてByteArrayを受け取り、それを指定されたファイルに直接書き込みます。これは、内容がプレーンテキストではなくバイトの配列である場合に役立ちます。

File(fileName).writeBytes(fileContentAsArray)

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

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

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

4.1. printWriter

Java PrintWriterを使用したい場合、Kotlinはまさにこの目的のためにprintWriter関数を提供します。これを使用すると、オブジェクトのフォーマットされた表現を OutputStreamに印刷できます。

File(fileName).printWriter()

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

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

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

4.2. bufferedWriter

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

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

File(fileName).bufferedWriter()

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

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

5. 結論

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

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