黑马程序员——Java基础——IO流笔记(PipedInputStream和PipedOutputStream使用示例)
2014-10-06 15:28
459 查看
------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
package com.itheima.log.io; import java.io.IOException; import java.io.PipedInputStream; import java.io.PipedOutputStream; /** * 管道流 * PipedInputStream * PipedOutputStream * * 重点: * PepidInputStream和PepidOutputStream使用逻辑 * 1.在Write类中读取文件(或其他输入流对象的数据)后用PepidOutputStream写出到PepidInputStream * 2.在PepidInputStream读取在PepidOutputStream写入的数据 * * 修改时间:2014-10-2 下午04:39:42 */ public class PipedStream2010 { //3.定义输入输出管道流对象和线程绑定,并执行 public static void main(String[] args)throws IOException{ PipedInputStream in = new PipedInputStream(); //1.创建输入管道流 PipedOutputStream out = new PipedOutputStream(); //2.创建输出管道流 in.connect(out); //3.输入管道流连接输出管道流 Read r = new Read(in); //4.定义执行输入管道流对象 (在这对象中用PipedInputStream对象读取PipedOutputStream对象中的数据,并进行打印或其他处理方式) Write w = new Write(out); //5.定义执行输入管道流对象 (在这对象中用输入流对象读取文件到管道流PipedOutputStream) new Thread(r).start(); //6.定义一个线程来执行Read new Thread(w).start(); //7.定义一个线程来执行Write } } //1.创建Read类来执行PipedInputStream,为了单独用一个线程来运行该对象实现Runnable接口 class Read implements Runnable{ private PipedInputStream in; Read(PipedInputStream in){ this.in = in; } @Override public void run() { try { byte[] by = new byte[1024]; int len = 0; System.out.println("等待数据写入"); len = in.read(by); //002.等out.write()方法执行后,才会执行in.read()方法 System.out.println("已读取到写入数据"); String s = new String(by,0,len); System.out.println(s); in.close(); } catch (IOException e) { throw new RuntimeException("输入管道流异常"); } } } //2.创建Write类来执行PipedOutputStream,为了单独用一个线程来运行该对象实现Runnable接口 class Write implements Runnable{ private PipedOutputStream out; Write(PipedOutputStream out){ this.out = out; } @Override public void run() { try { System.out.println("6秒后,准备写入数据"); Thread.sleep(6000); out.write("piped lai le".getBytes()); //001.写入数据 System.out.println("已经写入数据"); out.close(); } catch (Exception e) { throw new RuntimeException("输出管道流异常"); } } }
相关文章推荐
- 黑马程序员——Java基础——IO流笔记(ObjectInputStream和ObjectOutputStrem使用示例)
- 黑马程序员——Java基础——IO流笔记(InputStreamReader和OutputStreamWriter使用示例)
- 黑马程序员——Java基础——IO流笔记(BufferedWriter使用示例)
- 黑马程序员——Java基础——IO流笔记(BufferedWriter使用示例)
- 黑马程序员——Java基础——IO流笔记(SequenceInputStream使用示例)
- 黑马程序员——Java基础——IO流笔记(FileReader使用示例)
- 黑马程序员——Java基础——IO流笔记(PrintWriter使用示例)
- 黑马程序员——Java基础——IO流笔记(PrintStream使用示例)
- 黑马程序员——Java基础——IO流笔记(BufferedInputStream和BufferedOutputStream使用示例)
- 黑马程序员——Java基础——IO流笔记(BufferedReader使用示例)
- 黑马程序员——Java基础——IO流笔记(FileWriter使用示例)
- 黑马程序员——Java基础——IO流笔记(FileInputStream和FileOutputStream使用示例)
- 黑马程序员——Java基础——IO流笔记(File使用示例)
- Java基础知识强化之IO流笔记72:NIO之 NIO核心组件(NIO使用代码示例)
- Java基础知识强化之IO流笔记33:转换流之InputStreamReader的使用
- “黑马程序员”java_IO流之PipedInputStream管道流的使用
- 黑马程序员——java基础拾遗之IO流(二)File 和 Properties的使用
- 黑马程序员————Java基础日常笔记---IO流一
- 黑马程序员_java基础学习笔记07_IO流
- 黑马程序员_java基础笔记(07)...IO流