[kotlin] 파일 입출력과 데이터 직렬화의 사용법

파일 입출력과 데이터 직렬화는 소프트웨어 개발에서 매우 중요한 주제입니다. 파일을 읽고 쓰는 방법과 데이터를 저장하고 복원하는 방법을 이해하면 소프트웨어의 유지보수성과 확장성을 향상시킬 수 있습니다.

파일 입출력

파일 입출력은 소프트웨어가 파일 시스템과 상호작용하는 기본적인 방법입니다. Kotlin에서는 java.io 패키지를 통해 파일 입출력을 수행할 수 있습니다.

파일 읽기

import java.io.File

fun main() {
    val file = File("input.txt")
    val content = file.readText()
    println(content)
}

파일 쓰기

import java.io.File

fun main() {
    val content = "Hello, World!"
    val file = File("output.txt")
    file.writeText(content)
}

위의 예제에서는 File 클래스를 사용하여 파일을 읽고 쓰는 방법을 보여줍니다.

데이터 직렬화

데이터 직렬화는 객체를 저장 가능한 형태로 변환하고, 이를 다시 복원하는 과정을 말합니다. Kotlin에서는 Serializable 인터페이스를 구현하여 직렬화를 지원합니다.

데이터 직렬화

import java.io.*

data class Person(val name: String, val age: Int) : Serializable

fun main() {
    val person = Person("Alice", 30)
    val file = File("person.ser")
    
    val objectOutputStream = ObjectOutputStream(FileOutputStream(file))
    objectOutputStream.writeObject(person)
    objectOutputStream.close()
}

데이터 역직렬화

import java.io.*

fun main() {
    val file = File("person.ser")
    
    val objectInputStream = ObjectInputStream(FileInputStream(file))
    val person = objectInputStream.readObject() as Person
    objectInputStream.close()
    
    println(person)
}

위의 예제에서는 Serializable 인터페이스를 구현한 Person 클래스를 직렬화하고 역직렬화하는 방법을 보여줍니다.

파일 입출력과 데이터 직렬화는 Kotlin에서 중요한 주제이며, 이를 이해하고 활용함으로써 기능적인 측면과 데이터의 영속성을 보장할 수 있습니다.

참고 문헌: