ByteArrayOutputStream — 바이트 배열에 쓰는 출력 스트림
ByteArrayOutputStream — 바이트 배열에 쓰는 출력 스트림
ByteArrayOutputStream은 데이터가 바이트 배열에 쓰이는 출력 스트림을 구현하는 클래스예요. 데이터가 쓰일 때 버퍼는 자동으로 커집니다. 데이터는 toByteArray()와 toString()으로 검색할 수 있어요. ByteArrayOutputStream을 닫아도 아무 효과가 없으며, 닫은 후에도 메서드를 IOException 없이 호출할 수 있어요.
본문
이 클래스는 java.io.OutputStream을 상속하며 Closeable, Flushable, AutoCloseable을 구현합니다.
필드
protected byte[] buf— 데이터가 저장되는 버퍼예요.protected int count— 버퍼에 있는 유효 바이트 수예요.
생성자
ByteArrayOutputStream()— 새ByteArrayOutputStream을 만들어요. 버퍼 용량은 처음에 32바이트이며 필요하면 늘어나요.ByteArrayOutputStream(int size)— 지정한 크기(바이트)의 버퍼 용량을 갖는 새ByteArrayOutputStream을 만들어요.
메서드
void write(int b)— 지정한 바이트를 써요.void write(byte[] b, int off, int len)—off오프셋부터b배열의len바이트를 써요.void writeBytes(byte[] b)— 지정한 바이트 배열의 전체 내용을 써요.void writeTo(OutputStream out)— 이 스트림의 전체 내용을out.write(buf, 0, count)로 지정한 출력 스트림에 써요.void reset()—count필드를 0으로 재설정해 지금까지 누적된 모든 출력을 버려요.int size()— 버퍼의 현재 크기를 반환해요.byte[] toByteArray()— 새로 할당된 바이트 배열을 만들어 그 안에 현재 내용을 복사해요.String toString()— 버퍼 내용을 기본 문자셋으로 디코딩해 문자열로 변환해요.String toString(Charset charset)— 지정한 문자셋으로 버퍼 내용을 디코딩해 문자열로 변환해요.void flush()—ByteArrayOutputStream에는 아무 효과가 없어요.
ByteArrayOutputStream은 출력을 메모리 버퍼에 모았다가 한 번에 꺼내 쓸 때 유용해요.