Java

[Java의 정석] 15-3. 입출력: 보조 스트림

noahkim_ 2023. 11. 29. 18:55

"Java의 정석" 책을 정리한 포스팅 입니다.

4. 보조 스트림

  • 스트림의 기능을 보완하기 위한 보조적인 스트림 입니다.
    • 스트림의 기능을 향상시키거나 새로운 기능을 추가할 수 있습니다.
  • 실제 데이터를 주고받는 스트림은 아닙니다.
    • 데이터를 입출력할 수 있는 기능은 없습니다.
  • 스트림을 먼저 생성한 다음, 이를 이용해서 보조 스트림을 생성합니다.
// 기반스트림 생성
FileInputStream fis = new FileInputStream("text.txt"); 

// 보조스트림 생성
BufferedInputStream bis = new BufferedInputStream(fis); 

// 보조스트림을 이용해서 데이터를 읽기
bis.read();

 

 

바이트 기반

FilterInputStream & FilterOutputStream
  • 모든 바이트 기반 보조스트림의 부모 클래스 입니다.

 

BufferedInputStream & BufferedOutputStream
  • 스트림의 입출력 효율을 높이기 위해 버퍼를 사용하는 보조스트림 입니다.
    • 내부의 버퍼로 읽는 것이 훨씬 빠르고 효율적입니다.
  • 한 바이트씩 입출력하는 것이 아닌 한번에 여러 바이트를 입출력하고 버퍼에 저장하여 사용합니다.

 

DataInputStream & DataOutputStream
  • 데이터를 읽고쓰는 단위가 바이트가 아닌 8가지 기본 자료형을 사용할 수 있습니다.

 

문자 기반

BufferedReader & BufferedWriter
  • 버퍼를 이용하여 입출력의 효율을 높이는 보조 스트림 입니다.

 

InputStreamReader & InputStreamWriter
  • 바이트 기반 스트림을 문자 기반 스트림으로 연결시켜주는 보조 스트림입니다.

 

PrintWriter
  • 포맷팅된 문자열을 출력하는데 사용되는 스트림 입니다.