ByteArrayInputStream — 바이트 배열에서 읽는 입력 스트림
ByteArrayInputStream — 바이트 배열에서 읽는 입력 스트림
ByteArrayInputStream은 스트림에서 읽을 수 있는 바이트를 담고 있는 내부 버퍼를 포함하는 입력 스트림이에요. 내부 카운터가 read 메서드가 다음에 공급할 바이트를 추적해요. ByteArrayInputStream을 닫아도 아무 효과가 없으며, 스트림을 닫은 후에도 이 클래스의 메서드를 IOException 없이 호출할 수 있어요.
본문
이 클래스는 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은 메모리에 있는 바이트 배열을 스트림처럼 다룰 때 유용하며, 마크/리셋도 지원해요.