ImageInputStreamImpl

ImageInputStreamImpl (이미지 입력 스트림 구현)

ImageInputStream 인터페이스를 구현하는 추상 클래스예요. 서브클래스가 구현해야 할 메서드 수를 줄이기 위해 설계되었어요. 특히 바이트 순서 해석, 버퍼링, 마크/리셋, 데이터 폐기, 닫기, 정리(dispose) 같은 세부 처리를 대부분 담당해요.

출처: Java API Reference

본문

ImageInputStreamImpl은 보호된(protected) 필드로 스트림 상태를 관리해요. streamPos는 현재 스트림 위치, bitOffset은 현재 비트 오프셋, flushedPos는 이미 flush된 위치를 나타내요. byteOrder는 스트림의 바이트 순서로, ByteOrder.BIG_ENDIAN이 네트워크 바이트 순서를, LITTLE_ENDIAN이 그 반대를 의미해요.

protected ByteOrder byteOrder;
protected long streamPos;
protected int bitOffset;
protected long flushedPos;

서브클래스는 read(), read(byte[], int, int)만 구현하면 되고, 나머지 타입별 읽기 메서드는 이 클래스가 기본 구현을 제공해요. checkClosed()는 스트림이 닫혀 있는지 확인하고, 닫혀 있으면 IOException을 던져요. flushBefore(long)는 지정 위치 이전의 데이터를 버퍼에서 해제해 메모리를 절약해요.

더 알아보기 (Learn more)

Java 공식 API