在java的IO流中有一種很非凡的流就是管道流類:PipedInputStream PipedOutputStream.這兩個類的實例對象必須要通過connect方法連接.
其實看這么一個程序就知道了管道流類的使用方法.
//sender.java
import java.io.*;
import java.util.*;
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.java
import java.io.*;
import java.util.*;
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();
}
}
}
//TestPiped.java
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();
}
}
}
這個程序的功能是sender發送"Hello,receiver ! I`m sender"給receiver然后receiver接受后顯示出來并且在前面加上"the following is from sender"的信息.要注重的就是PipedInputStream和PipedOutputStream分別用兩個線程傳送數據.
新聞熱點
疑難解答