PHpullh
학습 라이브러리/Kotlin/파일 읽기/쓰기 심화

KOTLIN · 파일/IO

파일 읽기/쓰기 심화

kotlin.io의 확장 함수로 파일 I/O를 간결하게 처리합니다. 대용량 파일의 효율적인 라인별 처리를 다룹니다.

파일/IO중급file-ioreadTextuseLinesbufferedReader

핵심 설명

kotlin.io의 확장 함수로 파일 I/O를 간결하게 처리합니다. 대용량 파일의 효율적인 라인별 처리를 다룹니다.

Kotlin code

import java.io.File

fun main() {
    val file = File("test_output.txt")

    // 파일 쓰기
    file.writeText("첫 번째 줄
두 번째 줄
")
    file.appendText("세 번째 줄
")

    // 전체 읽기
    println("=== 전체 ===")
    println(file.readText())

    // 줄 단위 읽기
    println("=== 줄 단위 ===")
    file.readLines().forEachIndexed { i, line ->
        println("${i + 1}: $line")
    }

    // 대용량 파일: useLines (자동 스트림 닫기)
    file.useLines { lines ->
        val count = lines.filter { it.isNotBlank() }.count()
        println("비어있지 않은 줄: $count")
    }

    // bufferedReader 활용
    file.bufferedReader().use { reader ->
        val first = reader.readLine()
        println("첫 줄: $first")
    }

    // 임시 파일
    val temp = kotlin.io.path.createTempFile("prefix_", ".tmp")
    println("임시 파일: $temp")

    file.delete()
}

학습 팁

useLines는 시퀀스로 처리하여 대용량 파일도 메모리 효율적으로 읽습니다. 블록이 끝나면 자동으로 스트림이 닫힙니다.

주의할 점

readLines()는 전체 파일을 메모리에 올립니다. GB 단위 파일에는 useLinesbufferedReader를 사용하세요.

자주 묻는 질문

파일 읽기/쓰기 심화란 무엇인가요?

kotlin.io 의 확장 함수로 파일 I/O를 간결하게 처리합니다. 대용량 파일의 효율적인 라인별 처리를 다룹니다.

파일 읽기/쓰기 심화 학습 시 주의할 점은 무엇인가요?

readLines() 는 전체 파일을 메모리에 올립니다. GB 단위 파일에는 useLines 나 bufferedReader 를 사용하세요.