ByteArrayOutputStream — 바이트 배열에 쓰는 출력 스트림

ByteArrayOutputStream — 바이트 배열에 쓰는 출력 스트림

ByteArrayOutputStream은 데이터가 바이트 배열에 쓰이는 출력 스트림을 구현하는 클래스예요. 데이터가 쓰일 때 버퍼는 자동으로 커집니다. 데이터는 toByteArray()toString()으로 검색할 수 있어요. ByteArrayOutputStream을 닫아도 아무 효과가 없으며, 닫은 후에도 메서드를 IOException 없이 호출할 수 있어요.

출처: Java API Reference

본문

이 클래스는 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은 출력을 메모리 버퍼에 모았다가 한 번에 꺼내 쓸 때 유용해요.

더 알아보기 (Learn more)