import java.io.*;
/*
管道流特点:可以将读取写入流实现连接。通常用于多线程操作流的情况。
*/
class Input implements Runnable
{
private PipedInputStream pis;
Input(PipedInputStream pis)
{
this.pis = pis;
}
public void run()
{
try
{
byte[] buf = new byte[1024];
int len = pis.read(buf);
System.out.println(new String(buf,0,len));
pis.close();
}
catch (Exception e)
{
System.out.println(e.toString());
}
}
}
class Output implements Runnable
{
private PipedOutputStream pos;
Output(PipedOutputStream pos)
{
this.pos = pos;
}
public void run()
{
try
{
Thread.sleep(4000);
pos.write("piped come in".getBytes());
pos.close();
}
catch (Exception e)
{
System.out.println(e.toString());
}
}
}
class PipedStream
{
public static void main(String[] args) throws IOException
{
PipedInputStream pis = new PipedInputStream();
PipedOutputStream pos = new PipedOutputStream();
pis.connect(pos);
new Thread(new Input(pis)).start();
new Thread(new Output(pos)).start();
}
}