
※ 학부생이 학습한 내용을 기반으로 정리한 글로, 정확하지 않은 정보가 포함되어 있을 수 있습니다.
백준 문제 15552번 '빠른 A+B' 문제에는 다음과 같이 설명되어 있다.

https://www.acmicpc.net/problem/15552
그렇다면 Scanner/System.out.println 보다 BufferReader/BufferWriter 이 더 빠른 이유는 무엇일까?
흔히 아는 FileReader, FileInputStream 등은 버퍼를 갖지 않는다.
이들의 경우 다음과 같은 원리로 작동한다.

입출력 장치와 자바 응용 프로그램 사이에서 데이터를 전송하는 입출력 스트림은,
작동 시 운영체제 API를 호출한다.
이 운영체제 API는 하드 디스크 장치나 네트워크 장치에게 명령을 내림으로써 작동시킨다.
그러나, 이와 같이 운영체제 API를 자주 호출할 경우
와 같은 부작용을 발생시킨다.
여기서 버퍼(Buffer)의 중요성이 부각된다.
버퍼(Buffer) : 데이터를 일시적으로 저장하기 위한 메모리
버퍼 스트림은 입출력 스트림이 버퍼를 가짐으로써 효율적으로 입출력을 관장하게 된다.

데이터를 버퍼에 모아뒀다가 한 번에 운영체제 API를 호출하는 매커니즘을 통해
의 효과를 얻을 수 있는 것이다.
명품 자바 프로그래밍(📖)
백준
(추가 설명 : https://www.acmicpc.net/board/view/22716 참고)