ImageOutputStream
ImageOutputStream (이미지 출력 스트림 인터페이스)
ImageWriter가 사용하는 위치 이동 가능한(seekable) 출력 스트림 인터페이스예요. OutputStream, File 등 다양한 출력 대상과 앞으로 등장할 고속 I/O 대상을 Image I/O API에서 사용할 수 있게 감싸 주는 방식으로 동작해요.
본문
일반 OutputStream과 달리 ImageOutputStream은 대응되는 ImageInputStream을 확장(extend)해요. 그래서 데이터를 쓰는 동안 같은 스트림에서 다시 읽는 것도 가능해요. 읽기와 쓰기에 같은 seek 및 flush 위치가 적용돼요.
바이트 정렬 쓰기 전에 0이 아닌 비트 오프셋이 있으면, 나머지 비트는 0으로 채워진 뒤 다음 바이트 위치에서 쓰기가 시작돼요. 읽기에서는 비트 오프셋이 무시되지만 쓰기에서는 그 의미가 다르답니다.
void write(int b) throws IOException
void writeBoolean(boolean v) throws IOException
void writeUTF(String s) throws IOException
void writeBit(int bit) throws IOException
void writeBits(long bits, int numBits) throws IOException
정수, 실수, 문자열, UTF, 그리고 정수 배열·실수 배열 등을 한 번에 쓰는 writeShorts, writeInts, writeFloats, writeDoubles 같은 메서드도 있어요. flushBefore(long)로 지정 위치 이전의 데이터를 기본 대상(예: OutputStream 또는 File)으로 강제 기록할 수 있어요.