코틀린에서 파일과 I/O(입출력) 작업을 수행하는 데 사용되는 주요 클래스와 메서드에 대해 알아보겠습니다.
1. 파일 생성과 쓰기 (Writing to a File)
코틀린에서 파일에 데이터를 쓰려면 File 클래스와 writeText() 메서드를 사용할 수 있습니다.
import java.io.File
fun main() {
val content = "Hello, Kotlin!"
// 파일 생성과 내용 쓰기
File("example.txt").writeText(content)
}
2. 파일 읽기 (Reading from a File)
코틀린에서 파일에서 데이터를 읽으려면 readText() 메서드를 사용할 수 있습니다.
import java.io.File
fun main() {
// 파일에서 내용 읽기
val content = File("example.txt").readText()
println(content)
}
3. 행 단위로 파일 읽기 (Reading File Line by Line)
파일의 각 행을 읽으려면 readLines() 메서드를 사용할 수 있습니다.
import java.io.File
fun main() {
// 파일에서 각 행 읽기
val lines = File("example.txt").readLines()
for (line in lines) {
println(line)
}
}
4. BufferedWriter를 사용한 파일 쓰기 (Using BufferedWriter for Writing to a File)
BufferedWriter를 사용하여 파일에 내용을 쓰려면 다음과 같이 할 수 있습니다.
import java.io.BufferedWriter
import java.io.File
import java.io.FileWriter
fun main() {
val content = "Hello, Kotlin!"
// BufferedWriter를 사용하여 파일에 내용 쓰기
BufferedWriter(FileWriter("example.txt")).use { writer ->
writer.write(content)
}
}
5. BufferedReader를 사용한 파일 읽기 (Using BufferedReader for Reading from a File)
BufferedReader를 사용하여 파일에서 데이터를 읽으려면 다음과 같이 할 수 있습니다.
import java.io.BufferedReader
import java.io.File
import java.io.FileReader
fun main() {
// BufferedReader를 사용하여 파일에서 데이터 읽기
BufferedReader(FileReader("example.txt")).use { reader ->
var line: String?
while (reader.readLine().also { line = it } != null) {
println(line)
}
}
}
6. 자동으로 자원 해제 (Automatic Resource Management)
파일 I/O 작업을 수행할 때는 use 함수를 사용하여 자원을 자동으로 해제하는 것이 좋습니다. use 함수를 사용하면 파일이나 스트림과 같은 리소스를 안전하게 사용한 후 자동으로 닫아줍니다.
import java.io.File
fun main() {
// use 함수를 사용하여 파일을 안전하게 다루기
File("example.txt").bufferedReader().use { reader ->
var line: String?
while (reader.readLine().also { line = it } != null) {
println(line)
}
}
}
이러한 방법들을 활용하여 코틀린에서 파일과 I/O 스트림을 다룰 수 있습니다. 주의해야 할 점은 파일 경로는 운영 체제에 따라 다를 수 있으며, 파일에 대한 쓰기/읽기 권한이 있어야 합니다. 또한 파일과 I/O 작업에서 발생할 수 있는 예외에 대한 적절한 예외 처리도 필요합니다.
With ChatGPT
'Kotlin > 포스팅' 카테고리의 다른 글
코틀린 스트림 생성 (0) | 2024.01.01 |
---|---|
코틀린 스트림 유틸리티 (0) | 2024.01.01 |
코틀린 컬렉션 순서 (0) | 2024.01.01 |
코틀린 하위 컬렉션 추출 (0) | 2024.01.01 |
코틀린 컬렉션 변환 (0) | 2024.01.01 |