鴻蒙OS PipedOutputStream

2022-10-24 11:14 更新

PipedOutputStream

java.lang.Object

|---java.io.OutputStream

|---|---java.io.PipedOutputStream

public class PipedOutputStream
extends OutputStream

管道輸出流可以連接到管道輸入流以創(chuàng)建通信管道。 管道輸出流是管道的發(fā)送端。 通常,數(shù)據(jù)由一個(gè)線程寫入 PipedOutputStream 對(duì)象,數(shù)據(jù)由其他線程從連接的 PipedInputStream 讀取。 不建議嘗試從單個(gè)線程中使用這兩個(gè)對(duì)象,因?yàn)樗赡軙?huì)使線程死鎖。 如果從連接的管道輸入流中讀取數(shù)據(jù)字節(jié)的線程不再活動(dòng),則稱該管道已損壞。

Since:

JDK1.0

構(gòu)造函數(shù)摘要

構(gòu)造函數(shù) 描述
PipedOutputStream() 創(chuàng)建尚未連接到管道輸入流的管道輸出流。
PipedOutputStream(PipedInputStream snk) 創(chuàng)建連接到指定管道輸入流的管道輸出流。

方法總結(jié)

修飾符和類型 方法 描述
void close() 關(guān)閉此管道輸出流并釋放與此流關(guān)聯(lián)的任何系統(tǒng)資源。
void connect(PipedInputStream snk) 將此管道輸出流連接到接收器。
void flush() 刷新此輸出流并強(qiáng)制寫出任何緩沖的輸出字節(jié)。
void write(byte[] b, int off, int len) 將指定字節(jié)數(shù)組中的 len 個(gè)字節(jié)從偏移量 off 處開(kāi)始寫入此管道輸出流。
void write(int b) 將指定的字節(jié)寫入管道輸出流。
從類 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
從類 java.io.OutputStream 繼承的方法
write

構(gòu)造函數(shù)詳細(xì)信息

PipedOutputStream

public PipedOutputStream(PipedInputStream snk) throws IOException

創(chuàng)建連接到指定管道輸入流的管道輸出流。 寫入此流的數(shù)據(jù)字節(jié)將作為 snk 的輸入提供。

參數(shù):

參數(shù)名稱 參數(shù)描述
snk 要連接的管道輸入流。

Throws:

Throw名稱 Throw描述
IOException 如果發(fā)生 I/O 錯(cuò)誤。

PipedOutputStream

public PipedOutputStream()

創(chuàng)建尚未連接到管道輸入流的管道輸出流。 在使用之前,它必須由接收方或發(fā)送方連接到管道輸入流。

方法詳情

connect

public void connect(PipedInputStream snk) throws IOException

將此管道輸出流連接到接收器。 如果此對(duì)象已連接到其他管道輸入流,則會(huì)引發(fā) IOException。

如果 snk 是未連接的管道輸入流并且 src 是未連接的管道輸出流,則它們可以通過(guò)以下任一調(diào)用連接:

 src.connect(snk)

或調(diào)用:

 snk.connect(src)

這兩個(gè)調(diào)用具有相同的效果。

參數(shù):

參數(shù)名稱 參數(shù)描述
snk 要連接的管道輸入流。

Throws:

Throw名稱 Throw描述
IOException 如果發(fā)生 I/O 錯(cuò)誤。

write

public void write(int b) throws IOException

將指定的字節(jié)寫入管道輸出流。

實(shí)現(xiàn)OutputStream的write方法。

指定者:

寫在類 OutputStream

參數(shù):

參數(shù)名稱 參數(shù)描述
b 要寫入的字節(jié)。

Throws:

Throw名稱 Throw描述
IOException 如果管道損壞、未連接、關(guān)閉或發(fā)生 I/O 錯(cuò)誤。

write

public void write(byte[] b, int off, int len) throws IOException

將指定字節(jié)數(shù)組中的 len 個(gè)字節(jié)從偏移量 off 處開(kāi)始寫入此管道輸出流。 此方法阻塞,直到所有字節(jié)都寫入輸出流。

覆蓋:

寫在類 OutputStream

參數(shù):

參數(shù)名稱 參數(shù)描述
b 數(shù)據(jù)。
off 數(shù)據(jù)中的起始偏移量。
len 要寫入的字節(jié)數(shù)。

Throws:

Throw名稱 Throw描述
IOException 如果管道損壞、未連接、關(guān)閉或發(fā)生 I/O 錯(cuò)誤。

flush

public void flush() throws IOException

刷新此輸出流并強(qiáng)制寫出任何緩沖的輸出字節(jié)。 這將通知任何讀者字節(jié)正在管道中等待。

指定者:

在接口 Flushable 中刷新

覆蓋:

類 OutputStream 中的刷新

Throws:

Throw名稱 Throw描述
IOException 如果發(fā)生 I/O 錯(cuò)誤。

close

public void close() throws IOException

關(guān)閉此管道輸出流并釋放與此流關(guān)聯(lián)的任何系統(tǒng)資源。 此流可能不再用于寫入字節(jié)。

指定者:

在接口 AutoCloseable 中關(guān)閉

指定者:

在接口Closeable中關(guān)閉

覆蓋:

在類 OutputStream 中關(guān)閉

Throws:

Throw名稱 Throw描述
IOException 如果發(fā)生 I/O 錯(cuò)誤。
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)