[kotlin] 텍스트 파일 내에서 특정 문자열을 검색하는 방법

Kotlin에서는 다양한 방법으로 텍스트 파일 내에서 특정 문자열을 검색할 수 있습니다. 이번 포스트에서는 가장 간단하고 효과적인 두 가지 방법을 소개하겠습니다.

1. BufferedReader와 readLines() 함수 사용하기

import java.io.*

fun searchInFile(fileName: String, searchStr: String) {
    val file = File(fileName)
    val br = BufferedReader(FileReader(file))
    var line: String?

    while (br.readLine().also { line = it } != null) {
        if (line!!.contains(searchStr)) {
            println("찾은 문자열: " + line)
        }
    }

    br.close()
}

fun main() {
    val fileName = "파일 경로"
    val searchStr = "검색할 문자열"
    
    searchInFile(fileName, searchStr)
}

searchInFile 함수는 주어진 파일에서 특정 문자열을 검색하고, 해당 문자열이 포함된 줄을 출력합니다. 함수 내에서는 BufferedReader를 사용하여 파일을 읽고, readLine() 함수를 통해 한 줄씩 읽어옵니다. contains() 함수를 사용하여 검색할 문자열이 포함되어 있는지 확인하고, 포함되어 있다면 해당 줄을 출력합니다. 검색이 끝나면 BufferedReader를 닫아줍니다.

main 함수에서는 검색할 파일 경로와 문자열을 설정하고, searchInFile 함수를 호출합니다.

2. Files.lines()와 filter() 함수 사용하기

import java.nio.file.*

fun searchInFile(fileName: String, searchStr: String) {
    Files.lines(Paths.get(fileName))
        .filter { line -> line.contains(searchStr) }
        .forEach { line -> println("찾은 문자열: $line") }
}

fun main() {
    val fileName = "파일 경로"
    val searchStr = "검색할 문자열"
    
    searchInFile(fileName, searchStr)
}

searchInFile 함수는 Files.lines() 함수를 사용하여 파일을 한 줄씩 읽고, filter() 함수를 통해 검색할 문자열이 포함된 줄만 필터링합니다. 필터링된 줄은 forEach() 함수를 통해 출력됩니다.

main 함수에서는 검색할 파일 경로와 문자열을 설정하고, searchInFile 함수를 호출합니다.

결론

Kotlin에서 텍스트 파일 내에서 특정 문자열을 검색하는 방법에 대해 알아보았습니다. 두 가지 방법 모두 파일을 한 줄씩 읽어와 검색할 문자열이 포함되어 있는지 확인하는데 사용하며, 필요에 따라 선택하여 사용할 수 있습니다. 이러한 방법을 활용하여 파일에서 원하는 정보를 효과적으로 추출할 수 있습니다.


참고: