Java

Java, System.in.read(); 사용자 입력 명령어

greenyellow-s 2024. 7. 8. 15:05

2024-7-5 네이버클라우드

 

System.in.read();


System.in.read(); 는 딱 한개의 문자만 입력받아 가져오는 명령어 입니다.
 
System.in.read(); 는 문자를 읽고 int형으로 가져오기 때문에 문자를 입력하면 숫자로 변형되어 출력됩니다.
(ex. [입력] abc -> [출력] 97)

 

 

Exception (예외처리)
컴파일 : (작성했을 때 자동으로) 문법적으로 오류가 나는 것

 

System.in.read(); 를 사용하면 오류가 발생됩니다.
해당 명령어는 예방(예외처리)을 반드시 해주어야 합니다.

IOException : 입력과 출력에 대한 예외처리,
throws IOException을 main 줄에 추가
import java.io.IOException 추가

 

Flash처리

 

System.in.read() 명령어를 사용할 때는 버퍼를 정리해주어서 버퍼에 남아있는 것들을 지워버려야합니다.
(사용자가 문자 입력 후 [enter] 시 [enter]도 같이 입력됨)

화면 -------> --------버퍼 -------> 메모리
a [enter]      a [enter]               a --> a = 97
                       [enter]              [enter] --> b = 13

[enter]의 특징 
1.다음줄(\n) 
2.맨 앞(\r)으로 이동

따라서 (enter)는 flash처리를 2번 해야된다.
System.in.read(); /flash처리, 버퍼 지워버리기

 

package read_;

import java.io.IOException // 추가

public class Read01 {

	public static void main(String[] args) throws IOException {
    
    	System.out.print("숫자를 입력하세요 : ");
    	int a = System.in.read();
        System.in.read(); // flash처리
    	
        System.out.print(a);
    }
}

[실행결과]

숫자를 입력하세요 : 0

48