ByteArrayInputStream — 바이트 배열에서 읽는 입력 스트림

ByteArrayInputStream — 바이트 배열에서 읽는 입력 스트림

ByteArrayInputStream은 스트림에서 읽을 수 있는 바이트를 담고 있는 내부 버퍼를 포함하는 입력 스트림이에요. 내부 카운터가 read 메서드가 다음에 공급할 바이트를 추적해요. ByteArrayInputStream을 닫아도 아무 효과가 없으며, 스트림을 닫은 후에도 이 클래스의 메서드를 IOException 없이 호출할 수 있어요.

출처: Java API Reference

본문

이 클래스는 java.io.InputStream을 상속하며 Closeable, AutoCloseable을 구현합니다.

필드

  • protected byte[] buf — 스트림 작성자가 제공한 바이트 배열이에요. buf[0]부터 buf[count-1]까지가 스트림에서 읽을 수 있는 유일한 바이트이고, buf[pos]가 다음에 읽을 바이트예요.
  • protected int count — 입력 스트림 버퍼의 마지막 유효 바이트보다 1 큰 인덱스예요.
  • protected int mark — 스트림에서 현재 표시된 위치예요.
  • protected int pos — 입력 스트림 버퍼에서 다음에 읽을 바이트의 인덱스예요.

생성자

  • ByteArrayInputStream(byte[] buf)buf를 버퍼 배열로 사용하는 ByteArrayInputStream을 만들어요.
  • ByteArrayInputStream(byte[] buf, int offset, int length)buf를 버퍼 배열로 사용하되 offset부터 시작하는 length 바이트만 사용하는 스트림을 만들어요.

메서드

  • int available() — 이 입력 스트림에서 읽을(또는 건너뛸) 수 있는 남은 바이트 수를 반환해요.
  • void close() — 아무 효과가 없어요.
  • void mark(int readAheadLimit) — 스트림에 현재 표시된 위치를 설정해요.
  • boolean markSupported() — 이 InputStream이 mark/reset을 지원하는지 여부를 반환해요.
  • int read() — 다음 바이트를 읽고, 끝에 도달하면 -1을 반환해요.
  • int read(byte[] b, int off, int len) — 최대 len 바이트를 바이트 배열에 읽어요.
  • byte[] readAllBytes() — 입력 스트림의 모든 남은 바이트를 읽어요.
  • int readNBytes(byte[] b, int off, int len) — 요청한 수의 바이트를 주어진 바이트 배열로 읽어요.
  • void reset() — 버퍼를 표시된 위치로 재설정해요.
  • long skip(long n) — 이 입력 스트림에서 n 바이트의 입력을 건너뛰어요.

ByteArrayInputStream은 메모리에 있는 바이트 배열을 스트림처럼 다룰 때 유용하며, 마크/리셋도 지원해요.

더 알아보기 (Learn more)