Java

Java - 자바 입출력 버퍼에 대해

마루설아 2025. 7. 2. 22:57

자바 알고리즘 문제를 풀때 시간초과를 방지하고자

입출력 속도를 높여주는 방법에 대한 정보

 

package mypackage;

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

public class Test {
	public static void main(String Args[]) throws IOException {
		/* 일반적인 입출력 방법 */
		Scanner scan = new Scanner(System.in);
		int num1 = scan.nextInt();
		String str1 = scan.next();
		
		System.out.println(num1);
		System.out.println(str1);
		
		
		/* 입출력 속도를 빠르게 */		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		// 한 줄 입력
		String read = br.readLine();
		
		// 공백을 기준으로 문자열 분할
		StringTokenizer st = new StringTokenizer(read);
		
		// 분할된 각 문자열을 파싱
		String s1 = st.nextToken();
		String s2 = st.nextToken();
		int n1 = Integer.parseInt(st.nextToken());
		
		// 출력 (write는 공백이 없기 때문에 \n 추가)
		bw.write(s1 + "\n");
		bw.write(s2 + "\n");
		bw.write(n1 + "\n");
		
		scan.close();
		bw.flush();
		bw.close();
	}
}

 

일반적으로 많이 쓰는 Scanner보다

BufferReader, BufferWriter, StringTokenizer를 활용하여 입출력 속도를 올릴 수 있다.