Title Image

Modified : 2023/10/08

テキストファイルへの書き込み

Kotlinでテキストファイルに書き込む方法、「文字コード(SJIS、UTF8)」や「改行コード」の指定方法を紹介します。
主に、File.writeText()、BufferedWriter.appendln()、BufferedWriter.useを使った書き込み方法の紹介となります。
[ホーム]

[記事の先頭]

File.writerText() でテキストファイルへの書き込み。

File.writerText()を使うと、文字列をテキストファイルに書き込むことができます。
なお、macOSでしか試していませんが、書き込む文字列に含まれている改行コードがそのまま出力されるようです。

文字コードをUTF8、改行コードをLFにして、出力するサンプル。

var text = ""
text = text + "うさぎの種類\n"
text = text + "・ネザーランド・ドワーフ\n"
text = text + "・ホーランド・ロップ\n"

val file = File(filePath)
file.writeText(text)

文字コードをSJIS、改行コードをCRLFにして、出力するサンプル。

var text = ""
text = text + "うさぎの種類\r\n"
text = text + "・ネザーランド・ドワーフ\r\n"
text = text + "・ホーランド・ロップ\r\r"

val file = File(filePath)
file.writeText(text, Charset.forName("MS932"))
[記事の先頭]

BufferedWriter.appendln()でテキストファイルへの書き込み。

 BufferedWriter.appendln()を使うと、文字列をテキストファイルに書き込むことができます。
 macOSでしか試していませんが、改行コードはLFとして出力されるようです。
 なお、BufferedWriterclose()を呼び出す必要があるので、忘れないように注意してください。

UTF8のファイルとして書き込むサンプル

val file = File(filePath)
val bufferedWriter = file.bufferedWriter()
bufferedWriter.appendln("うさぎの種類")
bufferedWriter.appendln("・ネザーランド・ドワーフ")
bufferedWriter.appendln("・ホーランド・ロップ")
bufferedWriter.close()

SJISのファイルとして書き込むサンプル

val file = File(filePath)
val bufferedWriter = file.bufferedWriter(Charset.forName("MS932"))
bufferedWriter.appendln("うさぎの種類")
bufferedWriter.appendln("・ネザーランド・ドワーフ")
bufferedWriter.appendln("・ホーランド・ロップ")
bufferedWriter.close()
[記事の先頭]

BufferedWriter.useでテキストファイルへの書き込み。

 そんな時は、BufferedWriter.useを使い、テキストファイルに書き込むサンプルを紹介します。
 なお、BufferedWriter.useを使っているため、BufferedWriterclose()を呼び出す必要はありません。

UTF8のファイルとして書き込むサンプル

val file = File(filePath)
val bufferedWriter = file.bufferedWriter()
val result = bufferedWriter.use {
    it.appendln("うさぎの種類")
    it.appendln("・ネザーランド・ドワーフ")
    it.appendln("・ホーランド・ロップ")
    // kotlin.Unit型を返すことになっているため、今回は成功の「true」を返す。
    true
}
println("result : $result")

SJISのファイルとして書き込むサンプル

val file = File(filePath)
val bufferedWriter = file.bufferedWriter(Charset.forName("MS932"))
val result = bufferedWriter.use {
    it.appendln("うさぎの種類")
    it.appendln("・ネザーランド・ドワーフ")
    it.appendln("・ホーランド・ロップ")
    // kotlin.Unit型を返すことになっているため、今回は成功の「true」を返す。
    true
}
println("result : $result")
[記事の先頭]

BufferedWriter.useで改行をCRLFにしてテキストファイルに書き込む。

 BufferedWriter.appendln()でファイルに書き込むと改行コードがLFとなってしまうので、 BufferedWriter.append()を使い、改行コードをCRLFにして出力する方法を紹介します。  

改行コードをCRLFにして出力するサンプル

val file = File(filePath)
val bufferedWriter = file.bufferedWriter()
val result = bufferedWriter.use {
    it.append("Rabbit type")
    it.append("\r\n")
    it.append("- Netherland Dwarf")
    it.append("\r\n")
    it.append("- Holland Lop")
    it.append("\r\n")
    // kotlin.Unit型を返すことになっているため、今回は成功の「true」を返す。
    true
}
println("result : $result")
[記事の先頭]

関連記事

[記事の先頭]