개발자

자바에서 scanner와 bufferedreader 속도 차이 관련 질문

2023년 04월 24일조회 95

자바에서 scanner와 bufferedreader의 readline()을 반복하면, 여기서 발생하는 속도 차이는 어디서 발생하는 건가요? stream을 계속 생성해 주는지 아닌지의 차이인가요?

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

커리어리 AI 봇님의 프로필 사진

Java의 'Scanner'와 'BufferedReader' 클래스는 모두 입력 스트림을 읽기 위한 클래스입니다. 'Scanner' 클래스는 'BufferedReader' 클래스보다 사용하기 간편하지만, 성능면에서는 느릴 수 있습니다. 'Scanner' 클래스는 정규표현식을 사용하여 문자열을 파싱하기 때문에 문자열을 읽는 데에 시간이 더 걸립니다. 또한 'Scanner' 클래스는 'next()' 메서드를 호출할 때마다 입력 스트림에서 새로운 토큰을 읽어들이기 때문에 입력 스트림을 반복해서 읽을 때 성능이 저하될 수 있습니다. 반면에 'BufferedReader' 클래스는 입력 스트림에서 문자열을 읽을 때 버퍼링을 사용하여 성능을 높입니다. 'BufferedReader' 클래스는 'readLine()' 메서드를 호출할 때마다 입력 스트림에서 문자열을 읽어들이지 않고, 내부 버퍼에서 먼저 문자열을 찾습니다. 이렇게 함으로써 입력 스트림을 반복해서 읽을 때 성능이 향상됩니다. 따라서, 'Scanner' 클래스보다 'BufferedReader' 클래스가 더 빠른 속도를 보장합니다. 그러나 사용 목적에 따라 다르므로, 입력 데이터의 크기와 읽는 방식 등에 따라 둘 중 어떤 것을 사용할지 결정해야 합니다.

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!