키보드에서 키 하나를 입력하면 프로그램에서는 숫자로 된 키코드를 읽을 수 있다. 예를 들어 알파벳 ‘a’를 입력하면 97번을, 숫자 1을 입력하면 49번을 읽을 수 있다.
키코드를 읽기 위해서는 System.in.read()를 이용하면 된다.
System.in.read()가 실행되면 Consol은 Enter 키가 입력될 때까지 대기 상태가 된다. Enter 키가 입력되면 입력된 키들에 대한 키코드를 하나씩 읽는다. Enter 는 캐리지리턴(CR : 13)과 라인 피드(LF: 10)로 구성된 2개의 키코드가 입력된다.
System.in.read()의 단점은 키코드를 하나씩 읽기 때문에 2개 이상의 키가 조합된 한글을 읽을 수 없다는 것이다. 그리고 키보드로부터 입력된 내용을 통 문자열로 읽지 못한다. 이러한 단점을 보완하기 위해 Scanner 클래스를 이용한다.
import java.io.IOException;
public class ContinewKeyCodeReadExample {
public static void main(String[] args) throws IOException {
int keyCode;
while(true) {
keyCode = System.in.read();
System.out.println("keyCode : " + keyCode);
}
}
생성자 : Scanner(InputStream source) 등
메소드 : nextInt() 등
// 표준입력 장치인 키보드로 입력을 받기 위해서 Scanner 객체를 생성한다.
// 대부분의 클래스들은 new 연산자를 사용하여 객체를 생성
// 유일하게 String 클래스만이 new 없이 객체를 생성할 수 있다.
// 매개변수로 표준 입력 스트림을 받음
// 입력 스트림을 사용하기 위해 System 클래스의 정적 필드 in을 사용
// System은 정적 클래스이기 때문에 객체 생성 없이 메소드 사용 가능
Scanner sc = new Scanner(System.in);
// 정수형태로 입력을 받기 위해서 nextInt() 메소드로 입력을 받는다.
int n1 = sc.nextInt(); // 공백(공백 + 개행)으로 문자열 구분
int n2 = sc.nextInt();
System.out.println("n1 : " + n1);
System.out.println("n2 : " + n2);
방법
키보드에서 키 하나를 입력하면 프로그램에서는 숫자로 된 키코드를 읽을 수 있다. 예를 들어 알파벳 ‘a’를 입력하면 97번을, 숫자 1을 입력하면 49번을 읽을 수 있다.
키코드를 읽기 위해서는 System.in.read()를 이용하면 된다.
System.in.read()가 실행되면 Consol은 Enter 키가 입력될 때까지 대기 상태가 된다. Enter 키가 입력되면 입력된 키들에 대한 키코드를 하나씩 읽는다. Enter 는 캐리지리턴(CR : 13)과 라인 피드(LF: 10)로 구성된 2개의 키코드가 입력된다.
System.in.read()의 단점은 키코드를 하나씩 읽기 때문에 2개 이상의 키가 조합된 한글을 읽을 수 없다는 것이다. 그리고 키보드로부터 입력된 내용을 통 문자열로 읽지 못한다. 이러한 단점을 보완하기 위해 Scanner 클래스를 이용한다.
import java.io.IOException;
public class ContinewKeyCodeReadExample {
public static void main(String[] args) throws IOException {
int keyCode;
while(true) {
keyCode = System.in.read();
System.out.println("keyCode : " + keyCode);
}
}
생성자 : Scanner(InputStream source) 등
메소드 : nextInt() 등
// 표준입력 장치인 키보드로 입력을 받기 위해서 Scanner 객체를 생성한다.
// 대부분의 클래스들은 new 연산자를 사용하여 객체를 생성
// 유일하게 String 클래스만이 new 없이 객체를 생성할 수 있다.
// 매개변수로 표준 입력 스트림을 받음
// 입력 스트림을 사용하기 위해 System 클래스의 정적 필드 in을 사용
// System은 정적 클래스이기 때문에 객체 생성 없이 메소드 사용 가능
Scanner sc = new Scanner(System.in);
// 정수형태로 입력을 받기 위해서 nextInt() 메소드로 입력을 받는다.
int n1 = sc.nextInt(); // 공백(공백 + 개행)으로 문자열 구분
int n2 = sc.nextInt();
System.out.println("n1 : " + n1);
System.out.println("n2 : " + n2);