K-DigitalTraining 강의/1. Java

[5주차] 87. 키보드 입력에서 한 줄 씩 읽어들이는 코드, Scanner는 공백 전까지만 받아올 수 있지만, 이걸 사용하면 엔터전까지의 공백을 포함해서 받아올 수 있음

이대곤 2022. 6. 8. 09:52

예시코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class Ex11_07_InputStreamReader {
	public static void main(String[] args) {

		System.out.print("입력:");

		//InputStream is = System.in; // System.in은 키보드를 의미하는데 키보드로는 1byte만 받을 수 있음
		//InputStreamReader ir = new InputStreamReader(is); // 키보드의 1byte 입력을 2byte 입력으로 바꿔줌 숫자, 영어 포함, 한글까지도 입력받을 수 있게함
		//BufferedReader br = new BufferedReader(ir); // 버퍼의 도움을 받아 더욱 빨리 처리

		/*
		위의 3줄의 코드를 한 줄로 만들면 아래와 같음
		System.in은 키보드 입력인데, InputStreamReader으로 1byte의 키보드의 입력을 2byte로 변경하여 한글도 받을 수 있게 하고,
	  	버퍼의 도움을 받아 빨리 입력받을 수 있도록 하겠다는 코드.
	  	Scanner는 공백 전까지만 가져올 수 있지만, 이를 이용하면 엔터치기 전까지의 공백을 포함한 것까지 받아올 수 있음
		*/
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		try {
			String str = br.readLine(); // Scanner는 공백 전까지만 가져올 수 있지만, 이를 이용하면 엔터치기 전까지의 공백을 포함한 것까지 받아올 수 있음
			System.out.println("str:" + str);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

실행결과

입력:재미있는 자바
str:재미있는 자바