[Java] 빠른 입출력_BufferedReader & BufferedWriter

Yujin·2020년 8월 3일
0

Java

목록 보기
5/8
post-thumbnail

빠른 입출력

Scanner로 입력받는 것 보다 BufferedReader로 입력 받는 것이 빠르고
System.out.println으로 출력하는 것 보다 BufferedWriter로 출력하는 것이 빠르다.

Scanner vs BufferedReader

ScannerBufferedReader
Space,Enter모두 경계로 인식Enter만 경계로 인식
입력받는 자료형 다양String으로 고정
데이터 가공작업 적음데이터 가공작업 많음
많은 양의 데이터 입력 속도 느림많은 양의 데이터 입력 속도 빠름



BufferedReader 사용법

BufferedReader를 사용하는데 필요한 것들을 아래코드처럼 import 해줘야하며 예외처리를 꼭 해줘야한다. try catch문을 이용하여 해도 되지만 대개 throws IOException을 통해 처리한다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
//import 해줘야함

public static void main(String[] args) throws IOException {
//예외처리 꼭해줘야함. try catch이용해도되지만 대개 이방식 이용

	BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
	String s = bf.readLine();//문자열 입력 받을 때
	int i = Integer.parseInt(bf.readLine());//정수 입력 받을 때
    
}



BufferedWriter 사용법

버퍼를 사용하기 때문에 BufferedWriter사용 후 flush(),close()를 반드시 호출하여 뒷처리를 해야한다. 개행시에는 \n을 이용한다.

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
//import 해줘야함
public static void main(String[] args) throws IOException {
//예외처리 꼭해줘야함. try catch이용해도되지만 대개 이방식 이용

	BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
	String s = "abcdefg";
	bw.write(s+"\n");
	bw.flush();
	bw.close();
}

📌언어별 출력 속도 비교 참고 링크

https://www.acmicpc.net/blog/view/57

profile
하나하나 알아가는 하루하루

1개의 댓글

comment-user-thumbnail
2023년 11월 16일

안녕하세요 좋은 글 덕분에 백준 문제를 풀 수 있었어요!
그런데 궁금한게 있는데 답변 가능할까요?
버퍼란 무엇이고 버퍼가 있다면 flush, close를 해줘야 하는 이유가 뭔가요?

답글 달기