Java/Base
[JAVA] 키보드 입력
JungCw
2023. 9. 6. 11:18
System.in.read()
1byte의 크기만 읽어오는 메소드이다.
읽어온 값은 ASCII코드에 해당하는 int값으로 반환된다.
int e = System.in.read(); // "a"입력
//r = 97
char c = (char)r;
System.out.println(c); // a
BufferedReader, InputStreamReader, System.in
BufferedReader 객체의 사용법은 다음과 같다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class IOtest{
public static void main(String[] args){
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = in.readLine();
}
}
InputStreamReader를 이용해 한 문자씩 읽어올 수 있다.
하지만 이렇게 하면 시간이 오래 걸리기 때문에, BufferedReader를 이용해 스트림에 있는 데이터를 미리 버퍼에 받아 처리한다.
Scanner
Scanner 클래스는 기존의 BufferedReader를 사용한 방식보다 좀 더 쉽게 처리할 수 있다.
Scanner scan = new Scanner(System.in);
아래는 몇몇 scanner의 메소드이다.
import java.util.Scanner;
public class ScannerTest{
public static void main(String[] args){
Scanner scan = new Scanner(System.in); //Scanner 선언
// 문자열 입력 (Enter 전까지)
String str = scan.nextLine();
// 정수 입력
int num = scan.nextInt();
// 실수 입력
float fnum = scan.nextFloat();
double dnum = scan.nextDouble();
// true or false
boolean bool = scan.nextBoolean();
// 문자열 입력 (공백/space 전까지)
String str2 = scan.next();
scan.close();
}
}