[TIL #1] Java 빠른 입출력

gonudayo·2021년 8월 1일
0

한줄요약 : Scanner & System.out.print 보다 BufferedReader & BufferedWriter가 빠르다.

Java 입출력 비교

속도는 프로그래머스 연습 문제 중 직사각형 별찍기 문제를 활용하여 측정하였다. 극적인 차이를 연출하기에는 부족하지만, 차이가 분명하게 나타났기에 활용하엿다.

1. Scanner & System.out.print

소스 코드

import java.util.*;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        sc.close();

        for(int i = 0; i < b; i++) {
            for(int j = 0; j < a; j++){
                System.out.print("*");
            }
            System.out.print('\n');
        }
    }
}

속도

2. BufferedReader & BufferedWriter

소스 코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.IOException;
import java.util.StringTokenizer;

public class Solution {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        String str = br.readLine();
        StringTokenizer st = new StringTokenizer(str," ");
        int a = Integer.parseInt(st.nextToken());
        int b = Integer.parseInt(st.nextToken());

        for(int i = 0; i < b; i++) {
            for(int j = 0; j < a; j++){
                bw.write("*");
            }
            bw.flush();
            bw.newLine();
        }
        bw.close();
    }
}

속도

profile
초신성 백엔드 개발자

0개의 댓글