Kotlin (Java) を使ってファイルに出力する時に、 SJIS を使ってファイル出力やファイル読み込みをする場合の方法です。
ファイルに書き込む場合
FileWriter を使う
import java.io.FileWriter
import java.nio.charset.Charset
FileWriter(fileName, Charset.forName("SJIS")).use {
it.write("...")
}
OutputStreamWriter を使う
import java.io.FileOutputStream
import java.io.OutputStreamWriter
import java.nio.charset.Charset
OutputStreamWriter(
FileOutputStream(fileName, true), Charset.forName("SJIS").displayName()
).use {
it.write("...")
}
専用クラスを作る
もし、SJISで出力する場面が多いのなら、次のようなクラスを作ってしまうと便利です。
import java.io.FileOutputStream
import java.io.OutputStreamWriter
import java.nio.charset.Charset
class SjisFileWriter(fileName: String, append: Boolean) : OutputStreamWriter(
FileOutputStream(fileName, true), Charset.forName("SJIS").displayName()
)
ファイルを読み込む場合
FileReader を使う
InputStreamWriter を使う
専用クラスを作る
import java.io.FileInputStream
import java.io.InputStreamReader
import java.nio.charset.Charset
class SjisFileReader(fileName: String) :
InputStreamReader(FileInputStream(fileName), Charset.forName("SJIS")) {
}