버퍼를 활용하여 입출력을 수행하는 클래스를 알아보자!
import java.io.*;
https://docs.oracle.com/javase/8/docs/api/java/io/BufferedReader.html
BufferedReader는 문자, 배열 및 줄을 효율적으로 읽을 수 있도록 문자를 버퍼링하여 문자 입력 스트림에서 텍스트를 읽는다. 버퍼 크기를 지정하거나 기본 크기를 사용할 수 있다. 기본값은 대부분의 목적에 충분히 크다.(8KB)
Reader 클래스를 상속하고 있으며, Reader에 대한 각 읽기 요청은 기본 문자 또는 바이트 스트림에 대한 해당 읽기 요청을 발생시킨다. 일반적으로는 FileReader와 같은 Reader를 BufferedReader로 래핑하여 사용한다.
BufferedReader in
= new BufferedReader(new FileReader("foo.in"));
버퍼링이 없으면 read() 또는 readLine()을 호출할 때마다 파일에서 바이트를 읽고 문자로 변환한 다음 반환할 수 있으므로 매우 비효율적일 수 있다.
텍스트 파일이나 기타 입력 스트림에서 데이터를 읽어오는 데 사용되며, 주로 문자 스트림을 읽어오는 데에 특화되어 있다.
내부적으로 입력 스트림으로부터 데이터를 읽어와 버퍼에 저장한다. 버퍼링을 통해 읽기 성능이 향상되며, 파일이나 네트워크에서 데이터를 읽어오는 작업이 매번 발생하지 않도록 한다. 이렇게 함으로써 프로그램의 성능을 향상시키고 입출력 작업을 보다 효율적으로 수행할 수 있다.