Kotlin File I/O


Kotlin 파일 입출력 (File I/O in Kotlin)

Kotlin에서는 파일을 읽고 쓰기 위해 Java의 표준 라이브러리를 사용할 수 있습니다. 파일 입출력은 주로 java.io 패키지의 클래스를 통해 수행되며, Kotlin의 확장 함수와 함께 사용하면 더욱 편리하게 처리할 수 있습니다.

파일 읽기 (Reading from a File)

파일을 읽는 방법에는 여러 가지가 있습니다. 가장 기본적인 방법은 BufferedReader를 사용하는 것입니다. 또한, Kotlin의 File 클래스를 사용하면 파일을 읽는 작업이 더 간단해집니다.

BufferedReader를 사용한 파일 읽기 예제:

import java.io.File
import java.io.BufferedReader

fun readFile(fileName: String) {
    val file = File(fileName)
    if (file.exists()) {
        val bufferedReader: BufferedReader = file.bufferedReader()
        val text: List<String> = bufferedReader.readLines()
        text.forEach { println(it) }
    } else {
        println("파일이 존재하지 않습니다.")
    }
}

fun main() {
    readFile("example.txt")
}

위 코드에서 readFile 함수는 파일 이름을 인수로 받아 파일을 읽고, 각 줄을 출력합니다. 파일이 존재하지 않을 경우 적절한 메시지를 출력합니다.

Kotlin의 확장 함수를 사용한 파일 읽기 예제:

import java.io.File

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

    if (file.exists()) {
        val text = file.readText()
        println(text)
    } else {
        println("파일이 존재하지 않습니다.")
    }
}

위 코드에서 readText() 확장 함수를 사용하여 파일의 모든 내용을 한 번에 읽고 출력합니다.

파일 쓰기 (Writing to a File)

파일에 데이터를 쓰는 방법도 여러 가지가 있습니다. BufferedWriter를 사용하는 방법과 Kotlin의 File 클래스의 확장 함수를 사용하는 방법이 있습니다.

BufferedWriter를 사용한 파일 쓰기 예제:

import java.io.File
import java.io.BufferedWriter

fun writeFile(fileName: String, text: String) {
    val file = File(fileName)
    val bufferedWriter: BufferedWriter = file.bufferedWriter()
    bufferedWriter.use { out ->
        out.write(text)
    }
}

fun main() {
    val text = "Hello, Kotlin File I/O!"
    writeFile("example.txt", text)
}

위 코드에서 writeFile 함수는 파일 이름과 텍스트를 인수로 받아 파일에 쓰기 작업을 수행합니다. use 블록을 사용하여 BufferedWriter를 안전하게 닫습니다.

Kotlin의 확장 함수를 사용한 파일 쓰기 예제:

import java.io.File

fun main() {
    val fileName = "example.txt"
    val file = File(fileName)
    val text = "Hello, Kotlin File I/O!"

    file.writeText(text)
}

위 코드에서 writeText 확장 함수를 사용하여 파일에 텍스트를 간단하게 씁니다.

파일 추가 쓰기 (Appending to a File)

기존 파일에 데이터를 추가로 쓰기 위해서는 appendText 확장 함수를 사용할 수 있습니다.

파일에 텍스트 추가하기 예제:

import java.io.File

fun main() {
    val fileName = "example.txt"
    val file = File(fileName)
    val additionalText = "\nAppending this text to the file."

    file.appendText(additionalText)
}

위 코드에서 appendText 확장 함수를 사용하여 파일의 끝에 새로운 텍스트를 추가합니다.

파일 삭제 (Deleting a File)

파일을 삭제하려면 File 클래스의 delete 메서드를 사용합니다.

파일 삭제 예제:

import java.io.File

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

    if (file.exists()) {
        val deleted = file.delete()
        if (deleted) {
            println("파일이 성공적으로 삭제되었습니다.")
        } else {
            println("파일 삭제에 실패했습니다.")
        }
    } else {
        println("파일이 존재하지 않습니다.")
    }
}

위 코드에서 delete 메서드를 사용하여 파일을 삭제하고, 삭제 성공 여부에 따라 메시지를 출력합니다.

파일 입출력의 예외 처리 (Exception Handling in File I/O)

파일 입출력 작업 중에는 다양한 예외가 발생할 수 있습니다. 이러한 예외를 적절히 처리하는 것이 중요합니다.

예외 처리를 포함한 파일 읽기 예제:

import java.io.File
import java.io.IOException

fun readFileSafely(fileName: String) {
    try {
        val file = File(fileName)
        if (file.exists()) {
            val text = file.readText()
            println(text)
        } else {
            println("파일이 존재하지 않습니다.")
        }
    } catch (e: IOException) {
        println("파일을 읽는 도중 오류가 발생했습니다: ${e.message}")
    }
}

fun main() {
    readFileSafely("example.txt")
}

위 코드에서 try-catch 블록을 사용하여 파일 읽기 도중 발생할 수 있는 IOException을 처리합니다.

Kotlin의 파일 입출력 기능을 잘 활용하면 파일을 읽고 쓰는 작업을 효율적으로 수행할 수 있습니다. 다양한 확장 함수와 예외 처리를 통해 더욱 안전하고 간편하게 파일 작업을 할 수 있습니다.


Leave a Reply

Your email address will not be published. Required fields are marked *