您的位置:首页 > 编程语言 > Java开发

Java自学--IO操作(3) 管道流

2013-12-18 10:31 369 查看


import java.io.* ;
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(IOException e){
e.printStackTrace() ;
}
try{
this.pos.close() ;
}catch(IOException 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(IOException e){
e.printStackTrace() ;
}
try{
this.pis.close() ;	// 关闭
}catch(IOException e){
e.printStackTrace() ;
}
System.out.println("接收的内容为:" + new String(b,0,len)) ;
}
public PipedInputStream getPis(){
return this.pis ;
}
};
public class PipedDemo{
public static void main(String args[]){
Send s = new Send() ;
Receive r = new Receive() ;
try{
s.getPos().connect(r.getPis()) ;	// 连接管道
}catch(IOException e){
e.printStackTrace() ;
}
new Thread(s).start() ;	// 启动线程
new Thread(r).start() ;	// 启动线程
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: