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