PipedOutputStream — 파이프 출력 스트림
PipedOutputStream — 파이프 출력 스트림
PipedOutputStream은 파이프 입력 스트림에 연결되어 통신 파이프를 만들 수 있어요. 파이프 출력 스트림은 파이프의 보내는 끝(sending end)이에요. 보통 한 스레드가 PipedOutputStream 객체에 데이터를 쓰고, 다른 스레드가 연결된 PipedInputStream에서 데이터를 읽어요. 두 객체를 단일 스레드에서 모두 사용하려는 것은 데드락을 일으킬 수 있어 권장하지 않아요.
본문
연결된 파이프 입력 스트림에서 데이터 바이트를 읽던 스레드가 더 이상 살아 있지 않으면 파이프가 "깨졌다(broken)"고 말해요.
이 클래스는 java.io.OutputStream을 상속하며 Closeable, Flushable, AutoCloseable을 구현합니다.
생성자
PipedOutputStream()— 아직 파이프 입력 스트림에 연결되지 않은 파이프 출력 스트림을 만들어요.PipedOutputStream(PipedInputStream snk)— 지정한 파이프 입력 스트림에 연결된 파이프 출력 스트림을 만들어요. 이 스트림에 쓴 데이터 바이트는snk의 입력으로 사용할 수 있게 돼요.
메서드
void write(int b)— 지정한 바이트를 파이프 출력 스트림에 써요.void write(byte[] b, int off, int len)—off오프셋부터b배열의len바이트를 파이프 출력 스트림에 써요.void flush()— 이 출력 스트림을 플러시하고 버퍼링된 출력 바이트를 강제로 내보내요.void connect(PipedInputStream snk)— 이 파이프 출력 스트림을 수신자(receiver)에 연결해요. 이 객체가 이미 다른 파이프 입력 스트림에 연결되어 있으면IOException을 던져요. 사용 전에 수신자나 송신자 쪽에서 파이프 입력 스트림에 연결되어 있어야 해요.void close()— 이 파이프 출력 스트림을 닫고 관련 시스템 자원을 해제해요.
PipedOutputStream은 PipedInputStream과 짝을 이루어 스레드 간 데이터 전달 파이프라인을 구성할 때 사용돼요.