개발 ━━━━━/Java

[Java] Input 값 입력 받는 방법 ② - BufferedReader 클래스

GukJang 2024. 3. 5. 00:17
반응형

BufferedReader

BufferedReader 클래스는 버퍼를 이용한 대표적인 I/O 클래스로,

입력된 데이터를 바로 전달하지 않고 버퍼에 저장해두었다가 전달하는 방식이기 때문에 속도 측면에서 빠르고, 많은 양의 데이터를 처리할 때 유리하다.

 

사용 방법

import java.io.BufferedReader;
import java.io.InputStreamReader;

를 우선 import 해주어야 한다.

 

BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); // 선언
String s = bf.readLine(); // String 으로 입력 받기 (기본)
int i = Integer.parseInt(bf.readLine()); // Int 로 입력 받기

 

주의할 점

1. readLine() 은 기본적으로 String 형태로 고정되기 때문에 String 이외의 값을 입력 받고 싶다면 형변환을 해주어야 한다.

2. 예외 처리를 꼭 해주어야 한다. (throws IOException 또는 try catch)

// 클래스 import
import java.io.IOException;

// main 클래스에 throw
public static void main(String[] args) throws IOException {}

 

공백 단위 데이터 가공

Read 한 데이터는 Line 으로만 나눠지기 때문에 공백 단위로 데이터를 받으려면 따로 작업을 해주어야 한다.

 

StringTokenizer - nextToken()

StringTokenizer st = new StringTokenizer(s);
int a = Integer.parseInt(st.nextToken()); // 첫 번째 공백 전 출력
int b = Integer.parseInt(st.nextToken()); // 두 번째 공백 전 출력

 

String.split()

String array[] = s.split(" "); // 공백마다 데이터 끊어서 배열에 넣음

 

 

 

출처

https://velog.io/@yjshin229/Java-input%EA%B0%92-%EB%B0%9B%EA%B8%B0

https://m.blog.naver.com/ka28/221850826909

반응형