java学习笔记 管道流
2013-10-17 10:05
211 查看
管道流
管道流主要作用是可以连接两个线程间的通信。管道流也分为字节流(PipedInputStream、PipedOutputStream)与字符流(PipedReader、PipedWriter)两种类型.
一个PipedInputStream 对象必须和一个PipedOutputStream 对象进行连接而产生一个通信管道,PipedOutputStream 可以向管道中写入数据,PipedInputStream 可以从管道中读取 PipedOutputStream 写入的数据。
管道实现线程间通信图解
代码实例:
管道流主要作用是可以连接两个线程间的通信。管道流也分为字节流(PipedInputStream、PipedOutputStream)与字符流(PipedReader、PipedWriter)两种类型.
一个PipedInputStream 对象必须和一个PipedOutputStream 对象进行连接而产生一个通信管道,PipedOutputStream 可以向管道中写入数据,PipedInputStream 可以从管道中读取 PipedOutputStream 写入的数据。
管道实现线程间通信图解
代码实例:
Sender类: import java.io.IOException; import java.io.PipedOutputStream; public class Sender extends Thread { private PipedOutputStream out =null; public PipedOutputStream getOutputStream() { this.out=new PipedOutputStream(); return out; } public void run() { String s = new String("Receiver,你好!"); try { out.write( s.getBytes() ); out.close(); } catch (IOException e) { System.out.println( e.getMessage() ); } } } Eeceiver类: import java.io.IOException; import java.io.PipedInputStream; public class Eeceiver extends Thread { privatePipedInputStream in = new PipedInputStream(); publicPipedInputStream getinputStream() { return in; } publicvoid run ( ) { String s = null; byte [] buf = new byte[1024]; try { int len = in.read( buf ); s= new String( buf,0,len); System.out.println("收到了一下消息:"+s); in.close(); } catch (IOException e) { System.out.println( e.getMessage() ); } } } Pipedemo 类: import java.io.IOException; import java.io.PipedInputStream; import java.io.PipedOutputStream; public class pipedemo { publicstatic void main( String args[]) { try{ Sendersender = new Sender(); Eeceiverreceiver = new Eeceiver(); PipedOutputStreamout = sender.getOutputStream(); PipedInputStreamin = receiver.getinputStream(); out.connect(in); sender.start(); receiver.start(); } catch (IOException e) { System.out.println(e.getMessage() ); } } }
相关文章推荐
- Java Semaphore用法
- Eclipse 乱码解决方案总结
- JDK 7 中的 Fork/Join 模式
- 将数据导出为csv文件(需要javacsv.jar)
- Java JDBC 理论笔记(三)
- Java JDBC 理论笔记(二)
- Java JDBC 理论笔记(一)
- java创建多级目录以及文件
- 【马士兵】JAVA自学之路 七:路线图明细
- ubuntu 12.04 eclipse 安装
- JAVA分布式事务原理及应用
- java 局部变量和全局变量问题
- hadoop 1.2.1 eclipse 插件编译
- Java书籍经典Top10
- 用JAVA判断一个URL是否有效
- java简化版for循环语句:foreach语句
- eclipse颜色配置
- 对JAVA编程新的认识(2)
- 对JAVA编程新的认识(1)
- java String的split方法容易犯的错误