프로그래밍/자바

자바(JAVA)에서의 콘솔 입력

말랑공룡 2020. 7. 10. 16:27

보통 자바에서는 이런 식으로 콘솔입력을 할 수가 있습니다.

InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String someValue = br.readLine();

System.in이란

System.in은 System클래스의 멤버 변수 in을 나타낸 것입니다. 표준입력이나 표준출력을 위한 객체는 미리 생성되어 있어 그것이 System.in이나 System.out에 대입됩니다.

따라서, 특히 new로 입출력용의 객체(인스턴스)를 생성하지 않아도 System.out.println()과 같은 메소드를 사용할 수 있게 되는 것입니다.

 

System.in이 다루는 것은 입력되는대로의 byte열입니다. 한글도 올바르게 처리되지 않습니다.

윈도우에서 한국어는 자바내부에서는 유니코드로 되어있기 때문에 입출력시에 변환해야 합니다.

그것을 변환해주는 것이 InputStreamReader 클래스 입니다.

 

코드 1열의

InputStreamReader isr = new InputStreamReader(System.in);

isr객체는 한국어를 변환해줍니다.

※이 시점에서 isr은 byte열입니다.

 

한줄 단위로 읽기 위해서는

BufferedReader br = new BufferedReader(isr);

BufferedReader 클래스의 객체에 연결시킬 필요가 있습니다.

이 객체는 버퍼기능을 가지고 있어서 한줄 단위로 읽습니다.

String someValue = br.readLine();

br.readLine()은 입력된 한 줄을 한국어로 변환 후, 반환합니다.

이런식으로 String 클래스의 someValue안에 한 줄의 문자열을 넣을 수 있습니다.