BufferedInputStream 클래스는 입력 스트림에 대한 입력을 버퍼링하는 데 사용되는 클래스입니다. 이 클래스는 성능 향상을 위해 입출력 속도를 최적화하는 데 도움을 줍니다.
BufferedInputStream은 내부에 바이트 배열 버퍼를 유지하고, read 메서드를 통해 데이터를 버퍼에서 읽어옵니다. 일반적으로 한 번에 하나의 바이트가 아닌 여러 바이트를 읽어와서 버퍼에 저장하므로, 실제 입력 스트림에서 읽어오는 횟수를 줄여 성능을 향상시킬 수 있습니다.
다음은 BufferedInputStream을 사용하는 간단한 예제입니다.
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class BufferedInputStreamExample {
public static void main(String[] args) {
try (InputStream fileInputStream = new FileInputStream("example.txt");
BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream)) {
// 버퍼링된 입력 스트림을 사용하여 데이터 읽기
int data;
while ((data = bufferedInputStream.read()) != -1) {
System.out.print((char) data);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
이 예제에서는 BufferedInputStream을 사용하여 파일에서 데이터를 읽어오고 있습니다. BufferedInputStream은 내부적으로 설정된 기본 버퍼 크기를 사용합니다. 버퍼 크기를 변경하려면 다른 생성자를 사용하거나 BufferedInputStream 객체를 생성한 후에 setBufferSize 메서드를 사용할 수 있습니다.
BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream, bufferSize);
여기서 bufferSize는 사용자가 원하는 버퍼 크기를 나타냅니다. 더 큰 버퍼 크기는 일반적으로 더 효율적인 읽기를 제공할 수 있지만, 메모리 사용량이 증가할 수 있습니다. 따라서 적절한 크기를 선택하는 것이 중요합니다.
With ChatGPT
'JAVA > 포스팅' 카테고리의 다른 글
자바 DataInputStream (0) | 2023.11.26 |
---|---|
자바 BufferedOutputStream (0) | 2023.11.26 |
자바 FilterOutputStream (0) | 2023.11.26 |
자바 FilterInputStream (0) | 2023.11.26 |
자바 FileOutputStream (0) | 2023.11.25 |