Java IO学习笔记(六):管道流
来源:互联网 发布:知乎痴情叔被骂 编辑:程序博客网 时间:2024/05/22 13:34
管道流(线程通信流)
管道流的主要作用是可以进行两个线程间的通讯,分为管道输出流(PipedOutputStream)、管道输入流(PipedInputStream),如果想要进行管道输出,则必须要把输出流连在输入流之上,在PipedOutputStream类上有如下的一个方法用于连接管道:
public void connect(PipedInputStream snk)throws IOException
例子:线程之间用管道流进行通讯
1 import java.io.IOException; 2 import java.io.PipedInputStream; 3 import java.io.PipedOutputStream; 4 5 class Send implements Runnable{ 6 7 private PipedOutputStream pos;//管道输出流 8 public Send(){ 9 pos=new PipedOutputStream();10 }11 @Override12 public void run() {13 String str="Hello World!";14 try {15 pos.write(str.getBytes());16 } catch (IOException e) {17 e.printStackTrace();18 }19 try {20 pos.close();21 } catch (IOException e) {22 e.printStackTrace();23 }24 }25 public PipedOutputStream getPos() {26 return pos;27 }28 }29 30 class Receive implements Runnable{31 32 private PipedInputStream pis;//管道输入流33 public Receive(){34 pis=new PipedInputStream();35 }36 @Override37 public void run() {38 byte[] b=new byte[1024];39 int len=0;40 try {41 len=pis.read(b);42 } catch (IOException e) {43 e.printStackTrace();44 }45 try {46 pis.close();47 } catch (IOException e) {48 e.printStackTrace();49 }50 System.out.println(new String(b,0,len));51 }52 public PipedInputStream getPis() {53 return pis;54 }55 }56 57 public class Test23 {58 public static void main(String[] args) {59 Send send=new Send();60 Receive receive=new Receive();61 try {62 send.getPos().connect(receive.getPis());//连接管道63 } catch (IOException e) {64 e.printStackTrace();65 }66 new Thread(send).start();//启动线程67 new Thread(receive).start();//启动线程68 }69 }
阅读全文
0 0
- Java IO学习笔记(六):管道流
- java学习笔记(六)IO
- Java IO学习笔记六
- java笔记-IO流-管道流
- 【JAVA IO】_管道流笔记
- 【JAVA IO】_管道流笔记
- java IO 管道流学习记录
- java学习笔记 管道流
- JAVA IO-管道流
- Java IO 管道流
- 12. JAVA IO Party 2 (内存操作流、管道流、打印流、System类对IO的支持) ----- 学习笔记
- JAVA IO流(管道流)
- java学习之六(IO流上篇)
- Java IO _管道流
- java IO之管道流
- Java学习笔记(IO流)
- JAVA-IO流学习笔记(基础)
- Java学习笔记(十四)--IO流
- 编程习惯
- Java IO学习笔记(九):BufferedReader和Scanner
- Java IO学习笔记(八):System类对IO的支持
- Java IO学习笔记(七):打印流
- 【Mysql】mysql性能优化-慢查询分析、优化索引和配置
- Java IO学习笔记(六):管道流
- 读书笔记-大型网站系统与Java中间件4
- grep正则表达式(一)
- CodeVS 1907 网络流最小割 解题报告
- Java IO学习笔记(五):内存操作流
- Lucene3.0 优化操作
- IBM的单点登录
- Java IO学习笔记(四):字节
- 大话数据结构(七)——二叉树创建与遍历(递归、非递归)的java实现