JavaTM 2 Platform
Standard Ed. 6

java.io
類別 PipedInputStream

java.lang.Object
  繼承者 java.io.InputStream
      繼承者 java.io.PipedInputStream
所有已實作的介面:
Closeable

public class PipedInputStream
extends InputStream

管道輸入串流應該連接到管道輸出串流;管道輸入串流提供要寫入管道輸出串流的所有資料位元組。通常,資料由某個執行緒從 PipedInputStream 物件讀取,並由其他執行緒將其寫入到相應的 PipedOutputStream。不建議對這兩個物件嘗試使用單個執行緒,因為這樣可能死鎖執行緒。管道輸入串流包含一個緩衝區,可在緩衝區限定的範圍內將讀操作和寫操作分離開。 如果向連接管道輸出串流提供資料位元組的執行緒不再存在,則認為該管道已損壞

從以下版本開始:
JDK1.0
另請參見:
PipedOutputStream

欄位摘要
protected  byte[] buffer
          放置傳入資料的循環緩衝區。
protected  int in
          循環緩衝區中位置的索引,當從連接的管道輸出串流中接收到下一個資料位元組時,會將其存儲到該位置。
protected  int out
          循環緩衝區中位置的索引,此管道輸入串流將從該位置讀取下一個資料位元組。
protected static int PIPE_SIZE
          管道循環輸入緩衝區的預設大小。
 
建構子摘要
PipedInputStream()
          創建尚未連接PipedInputStream
PipedInputStream(int pipeSize)
          創建一個尚未連接PipedInputStream,並對管道緩衝區使用指定的管道大小。
PipedInputStream(PipedOutputStream src)
          創建 PipedInputStream,使其連接到管道輸出串流 src
PipedInputStream(PipedOutputStream src, int pipeSize)
          創建一個 PipedInputStream,使其連接到管道輸出串流 src,並對管道緩衝區使用指定的管道大小。
 
方法摘要
 int available()
          返回可以不受阻塞地從此輸入串流中讀取的位元組數。
 void close()
          關閉此管道輸入串流並釋放與該串流相關的所有系統資源。
 void connect(PipedOutputStream src)
          使此管道輸入串流連接到管道輸出串流 src
 int read()
          讀取此管道輸入串流中的下一個資料位元組。
 int read(byte[] b, int off, int len)
          將最多 len 個資料位元組從此管道輸入串流讀入 byte 陣列。
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 意味著緩衝區為空,in==out 意味著緩衝區已滿。

從以下版本開始:
JDK1.1

out

protected int out
循環緩衝區中位置的索引,此管道輸入串流將從該位置讀取下一個資料位元組。

從以下版本開始:
JDK1.1
建構子詳細資訊

PipedInputStream

public PipedInputStream(PipedOutputStream src)
                 throws IOException
創建 PipedInputStream,使其連接到管道輸出串流 src。寫入 src 的資料位元組可用作此串流的輸入。

參數:
src - 要連接的串流。
拋出:
IOException - 如果發生 I/O 錯誤。

PipedInputStream

public PipedInputStream(PipedOutputStream src,
                        int pipeSize)
                 throws IOException
創建一個 PipedInputStream,使其連接到管道輸出串流 src,並對管道緩衝區使用指定的管道大小。 寫入 src 的資料位元組可用作此串流的輸入。

參數:
src - 要連接的串流。
pipeSize - 管道緩衝區的大小。
拋出:
IOException - 如果發生 I/O 錯誤。
IllegalArgumentException - 如果 pipeSize <= 0
從以下版本開始:
1.6

PipedInputStream

public PipedInputStream()
創建尚未連接PipedInputStream。在使用前必須將其連接PipedOutputStream


PipedInputStream

public PipedInputStream(int pipeSize)
創建一個尚未連接PipedInputStream,並對管道緩衝區使用指定的管道大小。在使用前必須將其連接PipedOutputStream

參數:
pipeSize - 管道緩衝區的大小。
拋出:
IllegalArgumentException - 如果 pipeSize <= 0
從以下版本開始:
1.6
方法詳細資訊

connect

public void connect(PipedOutputStream src)
             throws IOException
使此管道輸入串流連接到管道輸出串流 src。如果此物件已經連接到其他某個管道輸出串流,則拋出 IOException

如果 src 為未連接的管道輸出串流,snk 為未連接的管道輸入串流,則可以通過以下任一調用使其連接:

snk.connect(src) 

或:

src.connect(snk) 

這兩個調用的效果相同。

參數:
src - 要連接的管道輸出串流。
拋出:
IOException - 如果發生 I/O 錯誤。

receive

protected void receive(int b)
                throws IOException
接收資料位元組。如果不存在可用的輸入,此方法將發生阻塞。

參數:
b - 將接收的位元組
拋出:
IOException - 如果管道損壞未連接、關閉,或者發生 I/O 錯誤。
從以下版本開始:
JDK1.1

read

public int read()
         throws IOException
讀取此管道輸入串流中的下一個資料位元組。返回 0255 範圍內的 int 位元組值。在輸入資料可用、檢測到串流的末尾或者拋出異常前,此方法一直阻塞。

指定者:
類別 InputStream 中的 read
返回:
下一個資料位元組;如果已到達串流末尾,則返回 -1
拋出:
IOException - 如果管道未連接損壞、關閉,或者發生 I/O 錯誤。

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException
將最多 len 個資料位元組從此管道輸入串流讀入 byte 陣列。如果已到達資料串流的末尾,或者 len 超出管道緩衝區大小,則讀取的位元組數將少於 len。如果 len 為 0,則不讀取任何位元組並返回 0;否則,在至少 1 個輸入位元組可用、檢測到串流末尾、拋出異常前,該方法將一直阻塞。

覆寫:
類別 InputStream 中的 read
參數:
b - 讀入資料的緩衝區。
off - 目標陣列 b 中的初始偏移量。
len - 讀取的最多位元組數。
返回:
讀入緩衝區的總位元組數;如果由於已到達串流末尾而不再有資料,則返回 -1
拋出:
NullPointerException - 如果 bnull
IndexOutOfBoundsException - 如果 off 為負,len 為負,或者 len 大於 b.length - off
IOException - 如果管道損壞未連接、關閉,或者發生 I/O 錯誤。
另請參見:
InputStream.read()

available

public int available()
              throws IOException
返回可以不受阻塞地從此輸入串流中讀取的位元組數。

覆寫:
類別 InputStream 中的 available
返回:
可以不受阻塞地從此輸入串流讀取的位元組數;如果已經調用 close() 方法關閉此輸入串流、管道未連接或已損壞,則返回 0
拋出:
IOException - 如果發生 I/O 錯誤。
從以下版本開始:
JDK1.0.2

close

public void close()
           throws IOException
關閉此管道輸入串流並釋放與該串流相關的所有系統資源。

指定者:
介面 Closeable 中的 close
覆寫:
類別 InputStream 中的 close
拋出:
IOException - 如果發生 I/O 錯誤。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only