• 목록 (128)
    • Android (62)
    • Back-End (2)
    • Java (3)
    • Kotlin (16)
    • CS (7)
    • 개발 서적 (12)
    • 문제 풀이 (26)

최근 글

티스토리

전체 방문자
오늘
어제
hELLO · Designed By 정상우.
MJ_94
Java

[Java] Scanner와 BufferedReader

[Java] Scanner와 BufferedReader
Java

[Java] Scanner와 BufferedReader

2020. 11. 23. 22:09

Scanner

Java에서 데이터를 입력받을 때, 가장 손쉽고 빠르게 입력받을 수 있도록 도와주는 클래스이다.

이 Scanner 클래스는 java.util 패키지에 포함되어 있으며 문자, 정수, 실수를 입력받을 수 있도록 도와주고, 무엇보다 쓰기 너무 편하다.

Scanner의 객체를 만들 때는 System.in을 넣어 만드는데 이 System.in은 입력값을 바이트 단위로 입력받는 것을 의미한다.

한번 코드로 알아보자.

Scanner scanner = new Scanner(System.in); 

 

이렇게 객체를 만든 뒤, scanner를 통하여 next() 메서드를 이용하여 입력값을 받을 수 있는데, 공백 이전까지의 값이 입력된다.

또한 각 입력 값을 받을때 원하는 자료형으로 입력받도록 메서드를 지원한다.

 

String insert = scanner.next(); // String 타입, 공백 기준으로 문자열을 입력받음

String insert = scanner.nextLine(); // String 타입, 문자열 전체를 입력받음

int insert = scanner.nextInt(); // int 타입

double insert = scanner.nextDouble(); // double 타입

float insert = scanner.nextFloat(); // float 타입

long insert = scanner.nextLong(); //long 타입  

 

이 외에도, 입력값에 대한 처리를 돕는 다양한 메소드들이 존재한다.

 

BufferedReader

입력값이 많아질수록 가장 효율적이라고 생각하는 클래스이다.

이름 그대로 버퍼(임시 메모리)를 사용하기 때문에 해당 클래스에서 지원하는 메서드로 입력의 효율을 높일 수 있다.

Scanner와 차이를 비유해보자면 물을 10통 옮길 때, 한 통씩 옮기는 것과 바구니에 10통을 모두 담아 한 번에 옮기는 것과 같다고 생각한다. 그만큼 속도도 더 빠르다.

 

하지만 BufferedReader로 입력받으면 String을 다른 타입으로 변환한다거나, 공백을 기준으로 나눠주는 작업이 필요하기 때문에 어쩌면 더 귀찮을 수도 있을 것 같다.

하지만 split()메소드나 StringTokenizer의 nextToken() 같은 메서드들도 있기에 어느 정도 귀찮음이 상쇄되는 것 같다.

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

System.out.println(bufferedReader.readLine());

 

 

'Java' 카테고리의 다른 글

[Java] 예외 종류  (0) 2022.02.08
[Java] volatile 키워드  (0) 2021.12.27
  • Scanner
  •  
  • BufferedReader
'Java' 카테고리의 다른 글
  • [Java] 예외 종류
  • [Java] volatile 키워드
MJ_94
MJ_94
안드로이드, 개발 관련 기술 블로그

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.