[JAVA] BufferedReader, BufferedWriter 활용하기

김정연·2024년 8월 19일
0
post-thumbnail

오늘부터 알고리즘 공부를 시작하면서 스캐너가 아닌 bufferdeReader를 사용해봤다.

BufferdeReader, BufferedWriter란?

bufferdeReder란 말 그대로 buffe를사용하는 함수이이다. 여기서 버퍼는 우리가 흔히 알고 있는 버퍼링의 줄임말인데 데이터를 전송할 때 전송속도 혹은 처리속도를 빠르게 하기 위해 사용하는 기억영역이라고 한다.
즉 임시 저장공간이라고 생각하면 된다.

예를 들면 파일 입출력을 할 때 BufferdeReader는 데이터를 조금씩 읽는게 아니라 일정 크기만큼 미리 읽어서 저장한 후 필요할 때마다 꺼내서 쓰기 때문에 파일 입출력 속도가 크게 향상된다.

보통 값을 입력받고 출력하는 경우 scanner를 사용하게 되는데, scanner는 스페이스와 엔터로 경계값을 인식한다고 한다. 그리고 BufferdeReader와 다르게 형변환을 하지 않아도 되어서 여러가지 데이터를 받을 때는 효과적이다. 하지만 클래스 내부에 다양한 함수가 존재하고 매 입력마다 여러가지의 경우의 수를 따져야 하기 때문에 속도면에서 떨어질 수 밖에 없다.

그래서 단순한 입력의 양이 많을 때는 BufferdeReader가 효율이 훨씬 좋다.

BufferdeReader

BufferdeReader는 inputStringReder에 버퍼링 기능이 추가된 클래스이다.
엔터만을 경계값으로 인식하며 오직 string타입만 다루고 속도면에서 매우 빠르다.

그래서 문자열 외의 다른 타입은 꼭 형변환을 해줘야 한다.

import java.io.*;
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

BufferedWriter

BufferedWriter는 버퍼에 출력 문자열을 저장했다가 사용자의 요청이 있을 때 문자열을 한번에 출력하는 것이다.

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int sum = a+b;
bw.write(String.valueOf(sum));

쉬운 알고리즘 문제임에도 생각보다 헤맸다. 공부 끝!

이미지 참고 : https://hudi.blog/java-filter-stream

profile
백엔드 개발자

0개의 댓글