Published 2022. 10. 3. 18:12

java에서 입력을 받는 방법에는 대표적으로 두가지가 있다.

 

Scanner 객체를 생성
Scanner in = new Scanner(System.in); //scanner 객체 생성

byte a = in.nextByte(); 		// byte 형 입력 및 리턴
short b = in.nextShort(); 		// short 형 입력 및 리턴
int c = in.nextInt(); 			// int 형 입력 및 리턴
long d = in.nextLong(); 		// long 형 입력 및 리턴
float e = in.nextFloat(); 		// float 형 입력 및 리턴
double f = in.nextDouble(); 	// double 형 입력 및 리턴
 
boolean g = in.nextBoolean(); 	// boolean 형 입력 및 리턴
 
String h = in.next(); 			// String 형 입력 및 리턴 (공백을 기준으로 한 단어를 읽음)
String i = in.nextLine(); 		// String 형 입력 및 리턴 (개행을 기준으로 한 줄을 읽음)

 

 

 

 

BufferedReader
import java.io.*;//

//BufferdeReader로  String s, int a,b,c, 배열 데이터를 입력 받아보자!!
public static void main (String[] args) throws IOException {
	//1
	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

	//2 공백단위로 읽으려면 Tokenizer에 넣어서 입력
	StringTokenizer st = new StringTokenizer(br.readLine());

	//3
	int a = Integer.parseInt(st.nextToken());
	int b = Integer.parseInt(st.nextToken());
	int c = Integer.parseInt(st.nextToken());

	String s= st.readLine();

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

}

1.BufferdeReader객체를 생성하고 그 안에 inputStream객체도 생성

 

2.readLine이라는 함수로 받으면 한 줄씩 string형태로 받게 됨

   따라서 StringTokenizer을 생성하여 받아주어야 함

   이때 String이 아닌 다른 타입으로 입력을 받게 되면 형변환을 해주어야 한다.

 

3. StringTokenizer로 받은 값을 int형태로 parsing해주어야 함

 

 

 

 

다음으로 예외처리를 꼭 해주어야 한다.

1. readLine을 할 때마다 try&catch문으로 예외처리를 해주기

2.main클래스 옆에 throws IOException을 작성하기(주로 사용하는 방법)

 

 

 

이 방법은 Scanner보다 번거롭지만

입력 데이터가 많다면 시간 단축을 위해 BufferedReader를 사용해 주는 것이 좋다.

 

복사했습니다!