[JAVA] 데이터 입출력 방법 (Scanner vs BufferedReader & BufferedWriter 클래스)

2018. 7. 4. 13:24JAVA

데이터 입출력 방법

(Scanner vs BufferedReader & BufferedWriter 클래스)



① BufferedReader & BufferedWriter


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
 
public class Main {
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
    
    public static void main(String[] args) throws Exception {
        // BufferedReader로 바로 입력받는 경우(한 줄에 숫자 하나만 있는 경우)
        int number = Integer.parseInt(br.readLine());
        
        // StringTokenizer를 이용해서 token으로 입력받는 경우(한 줄에 공백을 구분자로 여러 문자들이 있는 경우)
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");    //한 줄씩 읽어서 토큰화 함
        int number2 = Integer.parseInt(st.nextToken());                  //int에 저장하기 위해 변환
        String character = st.nextToken();                               //숫자를 int로 쓰지 않을거면,
  //string으로 받아도 출력은 가능
        
        bw.write(String.valueOf(number2));        //int 출력시, String으로 변환시켜줘야 함
        bw.newLine();                             //줄바꿈
        bw.write(character);                     //String은 그냥 출력 가능
        bw.newLine();
        bw.flush();                               //출려하려면, flush나 close를 써줘야 함
        bw.close();
    }
}

cs


② Scanner


1
2
3
4
5
6
7
8
9
10
11
12
13
14
import java.util.Scanner;
 
public class Main {
    static Scanner sc = new Scanner(System.in);
    
    public static void main(String[] args) {
        int number = sc.nextInt();
        String character = sc.next();
        String character2 = sc.nextLine();
        
        System.out.println(number);
        System.out.println(character);
    }
}
cs