管道流間的通訊
導讀 | 在應用程式中使用PipedInputStream類與PipedOutputStream類來建立管道之間的通訊,一個PipedInputStream例項化物件和一個PipedOutputStream例項化物件進行連線產生一個通訊管道。 |
在應用程式中使用PipedInputStream類與PipedOutputStream類來建立管道之間的通訊,一個PipedInputStream例項化物件和一個PipedOutputStream例項化物件進行連線產生一個通訊管道。PipedInputStream用來從管道中讀取寫入的資料,PipedOutputStream是向管道中寫入資料。透過執行緒之間的通訊使用PipedInputStream類與PipedOutputStream類。使用PipedInputStream類與PipedOutputStream類學習管道流之間的通訊。接下來小編帶大家一起來學習!
1.PipedInputStream類管道輸入流,它是可以連線管道輸出流,管道輸入流提供了要寫入管道輸出流的所有資料的位元組。
2.PipedInputStream類構造方法:
(1)public PipedInputStream():建立管道輸入流物件,這個物件它尚未連線。
(2)public PipedInputStream(PipedOutputStream out):建立一個管道輸入流,它被連線到引數out指定的管道輸出流。如下所示:
PipedInputStream pis=new PipedInputStream();
3.PipedInputStream類方法有:
(1)int read():讀取資料的下一個位元組。
(2)int read(byte []b,int off,int len):讀取len個位元組資料到一個位元組陣列,off參數列示偏移量,len表示讀取資料的長度。
(3)void receive(int b):接受一個位元組的資料。
(4)void connect(PipedOutputStream src):表示管道輸入流連線到管道輸出流src
(5)int available():表示沒有什麼阻礙從輸入流中讀取位元組數。
(6)void close():表示關閉流。
1.PipedOutputStream類是管道輸出流,它是可以用於向管道中寫入資料。
2.PipedOutputStream類構造方法:
(1)public PipedOutputStream():建立管道輸出流物件,這個物件它尚未連線。
(2)public PipedOutputStream(PipedInputStream in):建立一個管道輸出流,它被連線到引數in指定的管道輸入流。如下所示:
PipedOutputStream pos=new PipedOutputStream();
3.PipedOutputStream類方法有:
(1)void close():表示關閉流。
(2)void connect(PipedInputStream snk):表示管道輸出流連線到管道輸入流中。
(3)void flush():重新整理輸出流並強制的寫出任何緩衝的輸出位元組。
(4)void write(int b):寫入指定位元組到管道輸出流。
(5)void write(byte [] b,int off,int len):寫入len個位元組的指定位元組陣列從偏移量off開始到管道輸出流。
1.程式碼實現:
import java.io.*; public class P22 { public static void main(String[] args) throws Exception { //建立PipedInputStream物件 final PipedInputStream in=new PipedInputStream(); final PipedOutputStream out=new PipedOutputStream(); //兩個類進行連線 in.connect(out); new Thread(new Runnable(){ public void run(){ BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); //透過鍵盤讀取資料寫入管道流 PrintStream ps=new PrintStream(out); System.out.print(Thread.currentThread().getName()+"請輸入內容:"); try { ps.println(br.readLine()); } catch (IOException e) { e.printStackTrace(); } } },"傳送資料的執行緒").start(); new Thread(new Runnable(){ public void run(){ BufferedReader br=new BufferedReader(new InputStreamReader(in)); try { System.out.println(Thread.currentThread().getName()+"收到的內容:"+br.readLine()); } catch (IOException e) { e.printStackTrace(); } } },"接受資料的執行緒").start(); } }
執行的結果如下圖所示:
上面程式碼中使用一個PipedInputStream物件和一個PipedOutputStream物件進行連線產生一個通訊管道。,寫兩個執行緒,一個執行緒用於鍵盤輸入的資料管道輸出流,另一個執行緒用來管道讀取寫入的資料。使用這兩個類來實現執行緒之間的通訊。
本文主要介紹了PipedInputStream類、PipedOutputStream類、使用PipedInputStream類與PipedOutputStream類學習管道流之間的通訊。PipedInputStream類管道輸入流,它是可以連線管道輸出流,管道輸入流提供了要寫入管道輸出流的所有資料的位元組。PipedInputStream介紹了它的構造方法和方法。PipedOutputStream類是管道輸出流,它是可以用於向管道中寫入資料。PipedOutputStream介紹了它的構造方法和方法。使用PipedInputStream類與PipedOutputStream類學習管道流之間的通訊。希望大家透過本文的學習,對你有所幫助!
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2842832/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 程式間通訊(一)管道
- 程序間通訊(1)-管道
- Linux 的程式間通訊:管道Linux
- linux 程式間通訊之管道Linux
- linux程式間通訊--管道(PIPE & FIFO)Linux
- Linux程式間通訊②:有名管道FIFOLinux
- 溫故之.NET程式間通訊——管道
- 【IPC程式間通訊之二】管道PipeC程式
- 利用管道Pipelines做程序間的通訊
- Linux 下的程式間通訊:使用管道和訊息佇列Linux佇列
- 3|程式間通訊--有名管道學習筆記筆記
- linux程式間通訊-----管道總結例項Linux
- 20.2、python程式間通訊——佇列和管道Python佇列
- Delphi 簡單命名管道在兩個程式間通訊
- Java中利用管道實現執行緒間的通訊(轉)Java執行緒
- 匿名管道通訊實現
- VUE 元件間通訊---單向資料流Vue元件
- 採用管道進行通訊的例子
- C#使用匿名管道在本地程式之間進行通訊C#
- LLinux系統程式設計(10)——程式間通訊之管道Linux程式設計
- 程序間的通訊(訊號通訊)
- Windows程式通訊之一看就懂的匿名管道通訊Windows
- C#使用命名管道通過網路在程式之間進行通訊C#
- 我最喜歡的程式之間通訊方式-訊息匯流排
- 併發技術3:管道通訊
- 系統程式設計——管道通訊程式設計
- Linux系統程式設計之程式間通訊方式:管道(二)Linux程式設計
- Linux系統程式設計之程式間通訊方式:管道(一)Linux程式設計
- Linux系統程式設計(11)——程式間通訊之有名管道Linux程式設計
- Java的通過管道來實現執行緒通訊Java執行緒
- 元件間通訊--利用mitt實現事件匯流排元件MIT事件
- Linux系統程式設計之程式間通訊方式:命名管道(二)Linux程式設計
- Linux系統程式設計之程式間通訊方式:命名管道(一)Linux程式設計
- Linux程式執行緒學習筆記:程式間通訊 之 管道Linux執行緒筆記
- 程式間的通訊
- 兩個有名管道實現qq通訊
- Laravel 管道流原理Laravel
- 利用windows api實現程式通訊(命名管道)WindowsAPI