본문 바로가기
코딩테스트 준비(kotlin)/문법정리

[kotlin] 코틀린 입력 및 출력

by 1chanhue1 2023. 10. 16.

코틀린 사용자 입력 받아 출력하기

 

기본 입출력 함수 : readLine(), print()

fun main(args: Array<String>) {
    var name = readLine()
    println("name : ${name} !") // 개행
    System.out.println("name : "+name+" !") // 자바 방식
    print("name : ${name} !") // 개행하지 않음
}

코틀린의 println() 함수는 자바의 System.out.println() 함수와 동일하다. 해당 readLine(), println()은 사용이 간단한 대신 바이트 단위로 처리하고, 내부에서 정규식과 같은 검사를 진행하기 때문에 실행 속도가 상대적으로 느리다.

버퍼 입출력 함수 BufferedReader, BufferedWriter


import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
import java.util.StringTokenizer

fun main() {
    // BufferedReader
    val br = BufferedReader(InputStreamReader(System.`in`)) // BufferedReader 생성
    val input = br.readLine() // BufferedReader로 사용자 입력 받기

    // BufferedWriter
    val bw = BufferedWriter(OutputStreamWriter(System.`out`)) // BufferedWriter 생성
    bw.write("hello") // 일반 출력

    bw.write(input + "\n") // 출력 + 줄바꿈
    bw.flush() // 남아있는 출력 비우기
    bw.close() // 스트림 종료
}

BufferedReader 와 readLine()을 함께 사용함으로써 한 줄 전체를(공백 포함) 읽어, char 배열을 하나하나 생성할 필요 없이 String 타입으로 리턴한다는 장점이 있으며, 하나하나 문자를 보내는 것이 아닌 한 번에 Buffer(버퍼)에 모아둔 다음 출력하며, 정규식을 검사하지 않아 속도도 더 빠르다.

 

 

그럼 뭘 써야할까? 

보통 입력식은 까다롭고 출력식은 용이하게 주어지는 경우가 많다. 따라서 속도가 빠른 BufferedReader와 사용하기 용이한 print()를 함께 사용하는 것을 추천한다.