자바 IO

피오·2021년 10월 20일
0

보조스트림

  • 기반스트림을 보완하기 위한 스트림
  • 보조스트림만으로는 입출력 처리 불가
  • 기반스트림을 먼저 생성한 다음 이를 이용해 보조스트림을 생성
ex)
//기반스트림 생성
FileInputStream fis = new FileInputStream("test.txt");

//기반스트림을 이용해 보조스트림 생성 
BufferedInputStream bis = new BufferedInputStream(fis);

//보조스트림 BufferedInputStream으로부터 데이터를 읽음.
bis.read();

위 코드에서 BufferedInputStream은 버퍼만을 제공할 뿐이고, 실제 입력기능은 FileInputStream이 수행한다.



자바의 바이트기반 스트림은 read() 호출시 1바이트를 읽는다. 하지만 자바의 char타입은 2바이트이기 때문에 바이트기반 스트림으로 처리하기에 어려움이 있다.

자바의 char타입이 2바이트를 차지하는 이유는 자바의 문자형이 유니코드를 이용하기 때문인데, 1바이트를 이용하는 아스키코드와 달리 유니코드는 2바이트를 이용하기 때문이다(212^16^6=65536개).

이러한 문제를 보완하기 위해 문자기반의 스트림Reader, Writer을 사용하는 것이다.


참고

profile
블로그 이전했습니다. https://pzbg.tistory.com/

0개의 댓글