PipedOutputStream — 파이프 출력 스트림

PipedOutputStream — 파이프 출력 스트림

PipedOutputStream은 파이프 입력 스트림에 연결되어 통신 파이프를 만들 수 있어요. 파이프 출력 스트림은 파이프의 보내는 끝(sending end)이에요. 보통 한 스레드가 PipedOutputStream 객체에 데이터를 쓰고, 다른 스레드가 연결된 PipedInputStream에서 데이터를 읽어요. 두 객체를 단일 스레드에서 모두 사용하려는 것은 데드락을 일으킬 수 있어 권장하지 않아요.

출처: Java API Reference

본문

연결된 파이프 입력 스트림에서 데이터 바이트를 읽던 스레드가 더 이상 살아 있지 않으면 파이프가 "깨졌다(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() — 이 파이프 출력 스트림을 닫고 관련 시스템 자원을 해제해요.

PipedOutputStreamPipedInputStream과 짝을 이루어 스레드 간 데이터 전달 파이프라인을 구성할 때 사용돼요.

더 알아보기 (Learn more)