[kotlin] 파일 입출력 시 인코딩 설정

파일 입출력을 수행할 때, 데이터의 인코딩을 올바르게 설정하는 것은 매우 중요합니다. 인코딩 설정을 잘못하면 파일에서 잘못된 문자를 읽거나 쓸 수 있기 때문입니다. Kotlin에서 파일 입출력 시 인코딩을 설정하는 방법에 대해 알아보겠습니다.

파일 읽기

파일을 읽을 때 인코딩을 설정하는 방법은 BufferedReader를 사용하는 것입니다. BufferedReader 생성자에 charset 매개변수를 사용하여 원하는 인코딩을 지정할 수 있습니다.

아래는 UTF-8 인코딩으로 파일을 읽는 예제입니다.

import java.io.BufferedReader
import java.io.File
import java.nio.charset.Charset

fun main() {
    val file = File("file.txt")
    val reader = BufferedReader(file.reader(Charset.forName("UTF-8")))

    var line: String?
    while (reader.readLine().also { line = it } != null) {
        println(line)
    }

    reader.close()
}

파일 쓰기

파일을 쓸 때 인코딩을 설정하는 방법은 BufferedWriter를 사용하는 것입니다. BufferedWriter 생성자에 charset 매개변수를 사용하여 원하는 인코딩을 지정할 수 있습니다.

아래는 UTF-8 인코딩으로 파일에 문자열을 쓰는 예제입니다.

import java.io.BufferedWriter
import java.io.File
import java.nio.charset.Charset

fun main() {
    val file = File("file.txt")
    val writer = BufferedWriter(file.writer(Charset.forName("UTF-8")))

    val text = "Hello, world!"
    writer.write(text)

    writer.close()
}

참고 자료