?? pipedstreamtest.java
字號:
/*PipedInputStream和PipedOutputStream并不是由FilterInputStream和FilterOutputStream
* 派生而來的,它繼承的是InputStream和OutputStream抽象類.因此管道流不屬于過濾流。
* 管道流用于線程間的通信。一個線程的PipedInputStream對象從另一個線程的PipedOutputStream
* 對象讀取輸入。要使管道流有用必須同時構(gòu)造管道輸入流和管道輸出流。
*
*/
package io;
import java.io.*;
public class PipedStreamTest {
public static void main(String[] args) {
PipedOutputStream pos=new PipedOutputStream();
PipedInputStream pis=new PipedInputStream();
try {
pos.connect(pis); //管道輸出流對象連接到管道輸入流對象
//pis.connect(pos); //當然你也可以這樣寫,管道輸入流對象連接到管道輸出流對象。
} catch (IOException e) {
e.printStackTrace();
}
Producer p=new Producer(pos);
Consumer c=new Consumer(pis);
p.start();
c.start();
}
}
class Producer extends Thread{
private PipedOutputStream pos;
public Producer(PipedOutputStream pos){
this.pos=pos;
}
public void run(){
try {
pos.write("Hello,welcome you to our school !".getBytes());
pos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
class Consumer extends Thread{
private PipedInputStream pis;
public Consumer(PipedInputStream pis){
this.pis=pis;
}
public void run(){
byte[] buf=new byte[100];
int len;
try {
len = pis.read(buf);
System.out.println(new String(buf,0,len));
pis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -