LoginSignup
1
2

More than 3 years have passed since last update.

ShiftJIS を使ってファイルに書き込む・ファイルを読み込む (Kotlin/JVM)

Last updated at Posted at 2019-05-27

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")) {
}
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2