W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
java.lang.Object
|---java.io.InputStream
|---|---java.io.PipedInputStream
public class PipedInputStream
extends InputStream
管道輸入流應(yīng)該連接到管道輸出流; 然后,管道輸入流提供寫入管道輸出流的任何數(shù)據(jù)字節(jié)。 通常,數(shù)據(jù)由一個(gè)線程從 PipedInputStream 對(duì)象讀取,數(shù)據(jù)由其他線程寫入相應(yīng)的 PipedOutputStream。 不建議嘗試從單個(gè)線程中使用這兩個(gè)對(duì)象,因?yàn)樗赡軙?huì)使線程死鎖。 管道輸入流包含一個(gè)緩沖區(qū),在限制范圍內(nèi)將讀取操作與寫入操作分離。 如果向連接的管道輸出流提供數(shù)據(jù)字節(jié)的線程不再活動(dòng),則稱該管道已損壞。
Since:
JDK1.0
修飾符和類型 | 字段 | 描述 |
---|---|---|
protected byte[] | buffer | 放置傳入數(shù)據(jù)的循環(huán)緩沖區(qū)。 |
protected int | in | 當(dāng)從連接的管道輸出流接收時(shí),循環(huán)緩沖區(qū)中將存儲(chǔ)下一個(gè)字節(jié)數(shù)據(jù)的位置的索引。 |
protected int | out | 此管道輸入流將讀取下一個(gè)數(shù)據(jù)字節(jié)的循環(huán)緩沖區(qū)中位置的索引。 |
protected static int | PIPE_SIZE | 管道的循環(huán)輸入緩沖區(qū)的默認(rèn)大小。 |
構(gòu)造函數(shù) | 描述 |
---|---|
PipedInputStream() | 創(chuàng)建一個(gè) PipedInputStream 以便它尚未連接。 |
PipedInputStream(int pipeSize) | 創(chuàng)建一個(gè) PipedInputStream 以便它尚未連接并使用指定的管道大小作為管道緩沖區(qū)。 |
PipedInputStream(PipedOutputStream src) | 創(chuàng)建一個(gè) PipedInputStream 以便它連接到管道輸出流 src。 |
PipedInputStream(PipedOutputStream src, int pipeSize) | 創(chuàng)建一個(gè) PipedInputStream 以便它連接到管道輸出流 src 并為管道緩沖區(qū)使用指定的管道大小。 |
修飾符和類型 | 方法 | 描述 |
---|---|---|
int | available() | 返回可以不阻塞地從此輸入流中讀取的字節(jié)數(shù)。 |
void | close() | 關(guān)閉此管道輸入流并釋放與該流關(guān)聯(lián)的任何系統(tǒng)資源。 |
void | connect(PipedOutputStream src) | 導(dǎo)致此管道輸入流連接到管道輸出流 src。 |
int | read() | 從此管道輸入流中讀取數(shù)據(jù)的下一個(gè)字節(jié)。 |
int | read(byte[] b, int off, int len) | 從此管道輸入流中讀取最多 len 個(gè)字節(jié)的數(shù)據(jù)到一個(gè)字節(jié)數(shù)組中。 |
protected void | receive(int b) | 接收一個(gè)字節(jié)的數(shù)據(jù)。 |
從類 java.io.InputStream 繼承的方法 |
---|
mark, markSupported, read, reset, skip |
從類 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
protected static final int PIPE_SIZE
管道的循環(huán)輸入緩沖區(qū)的默認(rèn)大小。
Since:
JDK1.1
protected byte[] buffer
放置傳入數(shù)據(jù)的循環(huán)緩沖區(qū)。
Since:
JDK1.1
protected int in
當(dāng)從連接的管道輸出流接收時(shí),循環(huán)緩沖區(qū)中將存儲(chǔ)下一個(gè)字節(jié)數(shù)據(jù)的位置的索引。 in<0 表示緩沖區(qū)為空,in==out 表示緩沖區(qū)已滿
Since:
JDK1.1
protected int out
此管道輸入流將讀取下一個(gè)數(shù)據(jù)字節(jié)的循環(huán)緩沖區(qū)中位置的索引。
Since:
JDK1.1
public PipedInputStream(PipedOutputStream src) throws IOException
創(chuàng)建一個(gè) PipedInputStream 以便它連接到管道輸出流 src。 然后,寫入 src 的數(shù)據(jù)字節(jié)將可用作此流的輸入。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
src | 要連接的流。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯(cuò)誤。 |
public PipedInputStream(PipedOutputStream src, int pipeSize) throws IOException
創(chuàng)建一個(gè) PipedInputStream 以便它連接到管道輸出流 src 并為管道緩沖區(qū)使用指定的管道大小。 然后,寫入 src 的數(shù)據(jù)字節(jié)將可用作此流的輸入。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
src | 要連接的流。 |
pipeSize | 管道緩沖區(qū)的大小。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯(cuò)誤。 |
IllegalArgumentException | 如果管道大小 <= 0。 |
Since:
1.6
public PipedInputStream()
創(chuàng)建一個(gè) PipedInputStream 以便它尚未連接。 在使用之前,它必須連接到 PipedOutputStream。
public PipedInputStream(int pipeSize)
創(chuàng)建一個(gè) PipedInputStream 以便它尚未連接并使用指定的管道大小作為管道緩沖區(qū)。 在使用之前,它必須連接到 PipedOutputStream。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
pipeSize | 管道緩沖區(qū)的大小。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalArgumentException | 如果 pipeSize <= 0. |
Since:
1.6
public void connect(PipedOutputStream src) throws IOException
導(dǎo)致此管道輸入流連接到管道輸出流 src。 如果此對(duì)象已連接到其他管道輸出流,則會(huì)引發(fā) IOException。
如果 src 是一個(gè)未連接的管道輸出流并且 snk 是一個(gè)未連接的管道輸入流,它們可以通過以下任一調(diào)用連接:
snk.connect(src)
或調(diào)用:
src.connect(snk)
這兩個(gè)調(diào)用具有相同的效果。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
src | 要連接的管道輸出流。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯(cuò)誤。 |
protected void receive(int b) throws IOException
接收一個(gè)字節(jié)的數(shù)據(jù)。 如果沒有可用的輸入,此方法將阻塞。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
b | 正在接收的字節(jié) |
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果管道損壞、未連接、關(guān)閉或發(fā)生 I/O 錯(cuò)誤。 |
Since:
JDK1.1
public int read() throws IOException
從此管道輸入流中讀取數(shù)據(jù)的下一個(gè)字節(jié)。 值字節(jié)以 0 到 255 范圍內(nèi)的 int 形式返回。此方法阻塞,直到輸入數(shù)據(jù)可用、檢測(cè)到流結(jié)束或引發(fā)異常。
指定者:
讀入類 InputStream
返回:
數(shù)據(jù)的下一個(gè)字節(jié),如果到達(dá)流的末尾,則為 -1。
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果管道未連接、損壞、關(guān)閉或發(fā)生 I/O 錯(cuò)誤。 |
public int read(byte[] b, int off, int len) throws IOException
從此管道輸入流中讀取最多 len 個(gè)字節(jié)的數(shù)據(jù)到一個(gè)字節(jié)數(shù)組中。 如果到達(dá)數(shù)據(jù)流的末尾或 len 超過管道的緩沖區(qū)大小,則將讀取少于 len 個(gè)字節(jié)。 如果 len 為零,則不讀取任何字節(jié)并返回 0; 否則,該方法將阻塞,直到至少有 1 個(gè)字節(jié)的輸入可用、檢測(cè)到流結(jié)束或拋出異常。
覆蓋:
讀入類 InputStream
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
b | 讀取數(shù)據(jù)的緩沖區(qū)。 |
off | 目標(biāo)數(shù)組 b 中的起始偏移量 |
len | 讀取的最大字節(jié)數(shù)。 |
返回:
讀入緩沖區(qū)的總字節(jié)數(shù),如果由于到達(dá)流的末尾而沒有更多數(shù)據(jù),則為 -1。
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 b 為空。 |
IndexOutOfBoundsException | 如果 off 為負(fù)數(shù),len 為負(fù)數(shù),或者 len 大于 b.length - off |
IOException | 如果管道損壞、未連接、關(guān)閉或發(fā)生 I/O 錯(cuò)誤。 |
public int available() throws IOException
返回可以不阻塞地從此輸入流中讀取的字節(jié)數(shù)。
覆蓋:
在類 InputStream 中可用
返回:
可以在不阻塞的情況下從此輸入流中讀取的字節(jié)數(shù),如果此輸入流已通過調(diào)用其 close() 方法關(guān)閉,或者管道未連接或損壞,則為 0。
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯(cuò)誤。 |
Since:
JDK1.0.2
public void close() throws IOException
關(guān)閉此管道輸入流并釋放與該流關(guān)聯(lián)的任何系統(tǒng)資源。
指定者:
在接口 AutoCloseable 中關(guān)閉
指定者:
在接口Closeable中關(guān)閉
覆蓋:
在類 InputStream 中關(guān)閉
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯(cuò)誤。 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: