JavaTM Platform
Standard Ed. 6

java.io
클래스 PipedInputStream

java.lang.Object 
  상위를 확장 java.io.InputStream 
      상위를 확장 java.io.PipedInputStream
모든 구현된 인터페이스:
Closeable


public class PipedInputStream
extends InputStream

파이프로 연결된 입력 스트림은, 파이프로 연결된 출력 스트림에 접속하도록(듯이) 합니다. 이것에 의해, 파이프로 연결된 입력 스트림이 제공하는 데이터 바이트는, 파이프로 연결된 출력 스트림에 모두 기입해집니다. 일반적으로, 데이터는 1 개의 thread에 의해 PipedInputStream 객체로부터 읽혀 대응하는 PipedOutputStream 에 다른 thread에 의해 기입해집니다. 단일의 thread로부터 양쪽 모두의 객체를 사용하는 것은, thread가 데드락 할 가능성이 있기 (위해)때문에 추천 되고 있지 않습니다. 파이프로 연결된 입력 스트림에는 일정 범위의 버퍼가 포함되기 (위해)때문에, read 조작과 기입해 조작은 분리됩니다. 파이프로 연결된 출력 스트림에 데이터 바이트를 제공하고 있던 thread가 무효가 되었을 경우는, 파이프가 「망가져 있다」라고 말합니다.

도입된 버젼:
JDK1. 0
관련 항목:
PipedOutputStream

필드의 개요
protected  byte[] buffer
          들어 오는 데이터를 두는 순환 버퍼입니다.
protected  int in
          데이터의 다음의 바이트를 파이프로 연결된 접속 끝난 출력 스트림로부터 받았을 때에, 그 다음의 바이트를 포함하는 순환 버퍼의 인덱스 위치입니다.
protected  int out
          파이프로 연결된 이 입력 스트림이 데이터의 다음의 바이트를 읽어들이는, 순환 버퍼의 인덱스 위치입니다.
protected static int PIPE_SIZE
          파이프의 순환 입력 버퍼의 디폴트 사이즈입니다.
 
생성자 의 개요
PipedInputStream ()
           아직 connected 가 아닌 상태로 PipedInputStream 를 작성합니다.
PipedInputStream (int pipeSize)
           아직 connected 가 아닌 상태로 PipedInputStream 를 작성합니다.
PipedInputStream (PipedOutputStream  src)
          PipedInputStream 를 작성해, 파이프로 연결된 출력 스트림 src 에 접속합니다.
PipedInputStream (PipedOutputStream  src, int pipeSize)
          PipedInputStream 를 작성해, 파이프로 연결된 출력 스트림 src 에 접속합니다.
 
메소드의 개요
 int available ()
          블록 하지 않고 입력 스트림로부터 읽어들일 수가 있는 바이트수를 돌려줍니다.
 void close ()
          파이프에 의한 입력 스트림을 닫아 그 스트림에 관련하는 모든 system resource를 해제합니다.
 void connect (PipedOutputStream  src)
          파이프로 연결된 입력 스트림을 파이프로 연결된 출력 스트림 src 에 접속합니다.
 int read ()
          파이프로 연결된 입력 스트림로부터 데이터의 다음의 바이트를 읽어들입니다.
 int read (byte[] b, int off, int len)
          최대 len 바이트까지의 데이터를, 이 파이프로 연결된 입력 스트림로부터 바이트 배열에 읽어들입니다.
protected  void receive (int b)
          데이터의 바이트를 받습니다.
 
클래스 java.io. InputStream 로부터 상속된 메소드
mark , markSupported , read , reset , skip
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

필드의 상세

PIPE_SIZE

protected static final int PIPE_SIZE
파이프의 순환 입력 버퍼의 디폴트 사이즈입니다.

도입된 버젼:
JDK1. 1
관련 항목:
정수 필드치

buffer

protected byte[] buffer
들어 오는 데이터를 두는 순환 버퍼입니다.

도입된 버젼:
JDK1. 1

in

protected int in
데이터의 다음의 바이트를 파이프로 연결된 접속 끝난 출력 스트림로부터 받았을 때에, 그 다음의 바이트를 포함하는 순환 버퍼의 인덱스 위치입니다. in<0 는 버퍼가 빈 상태(empty)인 것을 나타내,in==out 는 버퍼가 가득해 있는 것을 나타냅니다.

도입된 버젼:
JDK1. 1

out

protected int out
파이프로 연결된 이 입력 스트림이 데이터의 다음의 바이트를 읽어들이는, 순환 버퍼의 인덱스 위치입니다.

도입된 버젼:
JDK1. 1
생성자 의 상세

PipedInputStream

public PipedInputStream(PipedOutputStream  src)
                 throws IOException 
PipedInputStream 를 작성해, 파이프로 연결된 출력 스트림 src 에 접속합니다. src 에 기입해진 데이터 바이트는, 이 스트림로부터의 입력으로서 사용할 수 있게 됩니다.

파라미터:
src - 접속처의 스트림
예외:
IOException - 입출력 에러가 발생했을 경우

PipedInputStream

public PipedInputStream(PipedOutputStream  src,
                        int pipeSize)
                 throws IOException 
PipedInputStream 를 작성해, 파이프로 연결된 출력 스트림 src 에 접속합니다. 그 때, 지정된 파이프 사이즈를 파이프의 버퍼에 사용합니다. src 에 기입해진 데이터 바이트는, 이 스트림로부터의 입력으로서 사용할 수 있게 됩니다.

파라미터:
src - 접속처의 스트림
pipeSize - 파이프의 버퍼의 사이즈
예외:
IOException - 입출력 에러가 발생했을 경우
IllegalArgumentException - pipeSize <= 0 의 경우
도입된 버젼:
1.6

PipedInputStream

public PipedInputStream()
아직 connected 가 아닌 상태로 PipedInputStream 를 작성합니다. 사용전에,PipedOutputStream 에 대해서 connected 상태로 할 필요가 있습니다.


PipedInputStream

public PipedInputStream(int pipeSize)
아직 connected 가 아닌 상태로 PipedInputStream 를 작성합니다. 그 때, 지정된 파이프 사이즈를 파이프의 버퍼에 사용합니다. 사용전에,PipedOutputStream 에 대해서 connected 상태로 할 필요가 있습니다.

파라미터:
pipeSize - 파이프의 버퍼의 사이즈
예외:
IllegalArgumentException - pipeSize <= 0 의 경우
도입된 버젼:
1.6
메소드의 상세

connect

public void connect(PipedOutputStream  src)
             throws IOException 
파이프로 연결된 입력 스트림을 파이프로 연결된 출력 스트림 src 에 접속합니다. 이 객체가 다른 파이프로 연결된 출력 스트림에 접속되고 있는 경우는,IOException 가 throw 됩니다.  

src 가 파이프에 의한 미접속의 출력 스트림로,snk 가 파이프에 의한 미접속의 입력 스트림인 경우, 2 개의 스트림은 이하의 호출의 어딘가에 따라 접속됩니다.

snk.connect(src) 

또는

src.connect(snk) 

2 개의 호출은 같은 효과를 가집니다.

파라미터:
src - 파이프에 의한 접속처의 출력 스트림
예외:
IOException - 입출력 에러가 발생했을 경우

receive

protected void receive(int b)
                throws IOException 
데이터의 바이트를 받습니다. 이 메소드는, 유효한 입력이 없는 경우는 블록 합니다.

파라미터:
b - 받는 바이트
예외:
IOException - 파이프가고장나 있는 경우,unconnected 상태인 경우, 닫혀지고 있는 경우, 또는 입출력 에러가 발생했을 경우
도입된 버젼:
JDK1. 1

read

public int read()
         throws IOException 
파이프로 연결된 입력 스트림로부터 데이터의 다음의 바이트를 읽어들입니다. 값의 바이트는,0 ~ 255 의 범위의 int 로서 돌려주어집니다. 입력 데이터를 읽어들일 수 있게 되는지, 파일의 마지막이 검출되는지, 또는 예외가 발생할 때까지, 이 메소드는 블록 합니다.

정의:
클래스 InputStream 내의 read
반환값:
데이터의 다음의 바이트. 스트림의 마지막에 이르렀을 경우는 -1
예외:
IOException - 파이프가 unconnected 상태인 경우,망가져 있는 경우, 닫혀지고 있는 경우, 또는 입출력 에러가 발생했을 경우

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException 
최대 len 바이트까지의 데이터를, 이 파이프로 연결된 입력 스트림로부터 바이트 배열에 읽어들입니다. 데이터 스트림의 마지막에 이르렀을 경우, 또는 len 바이트가 파이프의 버퍼 사이즈를 넘고 있는 경우,len 바이트보다 적은 데이터가 읽힙니다. len 가 0 의 경우, 읽히는 바이트는 없고, 0 이 돌려주어집니다. 그렇지 않은 경우, 적어도 1 바이트의 입력을 이용할 수 있게 되는지, 스트림의 마지막에 이르는지, 예외가 throw 될 때까지 메소드는 블록 합니다.

오버라이드(override):
클래스 InputStream 내의 read
파라미터:
b - 데이터의 read처의 버퍼
off - 전송처의 배열 b 내에서의 개시 오프셋(offset)
len - 읽히는 최대 바이트수
반환값:
버퍼에 읽힌 바이트의 합계수. 스트림의 마지막에 이르렀기 때문에 그 이상 데이터가 없는 경우는 -1
예외:
NullPointerException - bnull 의 경우
IndexOutOfBoundsException - off 가 부의 경우,len 가 부의 경우, 또는 lenb.length - off 보다 큰 경우
IOException - 파이프가고장나 있는 경우,unconnected 상태인 경우, 닫혀지고 있는 경우, 또는 입출력 에러가 발생했을 경우
관련 항목:
InputStream.read()

available

public int available()
              throws IOException 
블록 하지 않고 입력 스트림로부터 읽어들일 수가 있는 바이트수를 돌려줍니다.

오버라이드(override):
클래스 InputStream 내의 available
반환값:
블록 하지 않고 이 입력 스트림로부터 읽어들일 수가 있는 바이트수. 이 입력 스트림이 close() 메소드의 호출에 의해 닫혀졌을 경우, 파이프가 unconnected 상태인 경우, 또는망가져 있는 경우는 0
예외:
IOException - 입출력 에러가 발생했을 경우
도입된 버젼:
JDK1. 0.2

close

public void close()
           throws IOException 
파이프에 의한 입력 스트림을 닫아 그 스트림에 관련하는 모든 system resource를 해제합니다.

정의:
인터페이스 Closeable 내의 close
오버라이드(override):
클래스 InputStream 내의 close
예외:
IOException - 입출력 에러가 발생했을 경우

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.