
Scanner는 간단한 입력을 다룰 때 사용하고, BufferedReader는 대용량의 데이터를 빠르게 읽거나 성능이 중요할 떄 사용한다.
| Scanner | BufferedReader |
|---|---|
| 큰 입력을 처리할 때 속도가 느림 | 상대적으로 빠름 |
| 다양한 타입 처리 | 대용량 데이터 읽기 |
| Multi-Thread 환경에서 안전하지 않음 | Multi-Thread 환경에서 안전함 |
| 사용이 간편 | 복잡한 코드가 필요 |
화면으로부터 데이터를 입력받는 기능을 제공하는 class
import java.util.Scanner;
//main
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
in.nextByte() // byte 형
in.nextShort() // short 형
in.nextInt() // int 형
in.nextLong() // long 형
in.nextFloat() // float 형
in.nextDouble() // double 형
in.nextBoolean() // boolean 형
in.next() // String 형(공백 기준 한 단어)
in.nextLine() // String 형(개행 기준 한 줄)
buffer를 이용하는 함수
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
int i = Integer.parseInt(br.readLine());
public static int string2Integer(String s) {
return Integer.parseInt(s);
}
// main
static StringTokenizer st = new StringTokenizer(br.readlLine());
int i = si(st.nextToken());
// StringTokenizer
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write(s);
bw.newline();
bw.write(s+"\n");
bw.flush();
bw.close();