Java IO学习笔记(六):管道流
2017-05-30 11:04
260 查看
管道流(线程通信流)
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 @Override 12 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 @Override 37 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 }
相关文章推荐
- 12. JAVA IO Party 2 (内存操作流、管道流、打印流、System类对IO的支持) ----- 学习笔记
- 【JAVA IO】_管道流笔记
- Java IO学习笔记:概念原理
- Java I/O学习笔记(1),同步阻塞式IO
- IO输入输出流学习笔记(第一篇)(JAVA)
- Java学习笔记IO之File
- Java学习笔记——File类文件管理及IO读写、复制操作
- Java学习笔记——IO操作之以图片地址下载图片
- JAVA学习笔记13:IO&类集
- java IO学习笔记
- 学习笔记:Java_IO(File)
- Java文件IO学习笔记(二)---文件锁定
- 学习笔记之JavaIO中的文件处理——File和RandomAccessFile
- javaio学习笔记-字符流类(2)
- 12. JAVA IO Part 4 (对象的序列化) ----- 学习笔记
- Java IO学习笔记+代码(1)
- [学习笔记]Java IO之其他流及总结
- java IO学习笔记
- Java IO学习笔记
- [学习笔记]Java IO之文件