管道流
- 12.6管道流
- 基础概念
- 【例12.34】验证管道流
12.6管道流
基础概念
管道流的主要作用是可以进行两个线程间的通信,如图12-9所示,分为管道输出流(PipedOutputStream
)、管道输入流(PipedlnputStream
)。如果要想进行管道输出,则必须把输出流连在输入流上,在PipedOutputStream
类上有如下方法用于连接管道。
public void connect(PipedlnputStream snk) throws lOException
PipedOutputStream
方法
write(int b) 写入指定 byte到管道输出流。
【例12.34】验证管道流
package jiaqi;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
class Send implements Runnable
{
private PipedOutputStream pos = null;
public Send()
{
this.pos = new PipedOutputStream();//实例化
}
public void run()
{
String str = "hello world!";
try
{
this.pos.write(str.getBytes());//输出流中写入信息
}
catch(Exception e)
{
e.printStackTrace();
}
}
public PipedOutputStream getPos()
{
return this.pos;
}
}
class Receive implements Runnable
{
private PipedInputStream pis = null;
public Receive()
{
this.pis = new PipedInputStream();//实例化
}
public void run()
{
byte b[] = new byte[1024];
int len=0;
try
{
len = this.pis.read(b);
}
catch (Exception e)
{
e.printStackTrace();
}
System.out.println("内容:"+new String(b,0,len));
}
public PipedInputStream getPis()
{
return this.pis;
}
}
public class demo401_1
{
public static void main(String[] args) throws Exception
{
Send s = new Send();
Receive r = new Receive();
//输出流.connect.输入流
s.getPos().connect(r.getPis());
new Thread(s).start();
new Thread(r).start();
}
}