管道流多用于多任务之间的通信
一、Sender
package test.pipstream;
import java.io.*;
public class Sender extends Thread
{
PipedOutputStream out = new PipedOutputStream();
public PipedOutputStream getOut()
{
return out;
}
public void run()
{
String str = "Hello,receiver ! I`m sender/n";
try
{
out.write(str.getBytes());
out.close();
} catch (Exception e)
{
e.printStackTrace();
}
}
}
二、Receiver
package test.pipstream;
import java.io.*;
public class Receiver extends Thread
{
PipedInputStream in = new PipedInputStream();
public PipedInputStream getIn()
{
return in;
}
public void run()
{
byte[] buf = new byte[1024];
try
{
int len = in.read(buf);
System.out.println("the following is from sender:/n" + new String(buf, 0, len));
in.close();
} catch (Exception e)
{
e.printStackTrace();
}
}
}
三、多线程实现, main
package test.pipstream;
import java.io.*;
class TestPiped
{
public static void main(String[] args)
{
Sender s = new Sender();
Receiver r = new Receiver();
PipedOutputStream out = s.getOut();
PipedInputStream in = r.getIn();
try
{
in.connect(out);
s.start();
r.start();
} catch (Exception e)
{
e.printStackTrace();
}
}
}
本文通过一个多线程示例展示了Java中管道流(PipedInputStream和PipedOutputStream)的基本使用方法,实现了发送者(Sender)和接收者(Receiver)之间的简单通信。
1650

被折叠的 条评论
为什么被折叠?



