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