728x90
Scanner와 BufferedReader의 쓰임
Scanner와 BufferedReader는 모두 사용자(User)에게 입력을 받을때 사용하는 클래스 입니다.
결론적으로 말하자면 BufferedReader가 좀 더 효율적이며 빠른 속도를 가지고 있다. 그 이유가 무엇인지 살펴보자
Scanner의 사용법과 특징
import java.util.Scanner;
public class Input {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
}
}
scanner는 다음과 같이 활용할 수 있습니다. intput에 내가 넣고자하는 문자열 또는 숫자를 넣으면 되는 것이다.
Scanner 클래스는 텍스트 입력을 파싱합니다. Scanner는 공백, 개행 문자, 특정 패턴 등을 기준으로 데이터를 토큰화하여
처리하며, 각 데이터 유형(정수, 부동 소수점, 문자열 등)에 대한 메서드가 제공되므로, 텍스트 입력을 쉽게 읽고 변환할 수 있다는 장점이 있습니다. 하지만 데이터를 입력받을 때마다 매번 입출력을 수행해야하기 때문에 속도적인 측면에서 단점이 있습니다.
BufferedReader의 사용법과 쓰임
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Input {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
}
}
반면에 BufferedReader는 버퍼를 이용해서 데이터를 읽어온 후에, 개행 문자(\n)를 만날 때까지 데이터를 버퍼에 저장한 후에 읽어들입니다.
즉, 라인을 읽어올 때마다 데이터를 담아두기 때문에 추후에 데이터를 처리할 때 속도적인 측면에서 이점이 있습니다. 따라서 대량의 데이터를 가져오는 것에 scanner 보다 효율적으로 처리할 수 있습니다.
결론
요약하자면
Scanner는 입력을 토큰화하고 데이터 유형별로 처리하는 것에 유리하며,
BufferedReader는 데이터를 빠르게 읽고 버퍼링하는 것에 유리합니다.
BufferedReader를 사용합시다.
'Back-End > Java' 카테고리의 다른 글
[ 자바 ] String, StringBuilder, StringBuffer의 차이점은 무엇일까? (0) | 2023.07.20 |
---|---|
[ 자바 ] BufferedReader 와 Bufferedwriter의 사용법 (0) | 2023.07.19 |
[ Java ] SOLID (객체 지향 설계)란 무엇일까?! (0) | 2022.11.22 |
[ Spring ] AOP (Aspect-Oriented Programming)란 무엇일까?! (0) | 2022.11.15 |
[ Spring ] Asciidoc란 무엇일까?! (0) | 2022.11.11 |