java之PipedWriter和PipedReader
来源:互联网 发布:自动化软件公司简介 编辑:程序博客网 时间:2024/06/12 20:07
PipedWriter和PipedReader是管道读写,一般就是一个线程写,一个线程读,而且要先写后读。
测试代码:
package com.io;import java.io.Closeable;import java.io.IOException;import java.io.PipedReader;import java.io.PipedWriter;import junit.framework.TestCase;public class TestPipedWriterReader extends TestCase {public void testPipedWriterReader() {PipedWriter pipedWriter = null;PipedReader pipedReader = null;try {pipedWriter = new PipedWriter();pipedReader = new PipedReader();pipedWriter.connect(pipedReader);new Thread(new WriteRunnable(pipedWriter)).start();new Thread(new ReadRunnable(pipedReader)).start();} catch (IOException e) {e.printStackTrace();} finally {close(pipedWriter);close(pipedReader);}}private void close(Closeable closeable) {if (closeable != null) {try {closeable.close();closeable = null;} catch (IOException e) {e.printStackTrace();}}}static class WriteRunnable implements Runnable {private PipedWriter pipedWriter = null;public WriteRunnable(PipedWriter pipedWriter) {this.pipedWriter = pipedWriter;}@Overridepublic void run() {if (pipedWriter == null) {return;}try {pipedWriter.write("hello");} catch (IOException e) {e.printStackTrace();}}}static class ReadRunnable implements Runnable {private PipedReader pipedReader = null;public ReadRunnable(PipedReader pipedReader) {this.pipedReader = pipedReader;}@Overridepublic void run() {if (pipedReader == null) {return;}try {if (pipedReader.ready()) {char[] cbuf = new char[1024];int len = 0;// cyclicBarrier.await();while ((len = pipedReader.read(cbuf)) != -1) {System.out.println(new String(cbuf, 0, len));}}} catch (IOException e) {e.printStackTrace();}}}}
0 0
- java之PipedWriter和PipedReader
- Java-IO之PipedReader和PipedWriter
- java io系列20之 PipedReader和PipedWriter
- java io系列20之 PipedReader和PipedWriter
- Java IO - PipedReader& PipedWriter
- Java IO:PipedReader和PipedWriter使用详解及源码分析
- JAVA高级视频02_IO输入与输出 06 PipedWriter和PipedReader学习笔记
- JAVA IO系列----PipedInputStream与PipedOutputStream类,PipedWriter和PipedReader类
- PipedWriter PipedReader 源码分析
- java提高篇(23)--PipedWriter、PipedReader简介
- 利用PipedWriter和PipedReader实现两个线程通讯
- Java_io体系之PipedWriter、PipedReader简介、走进源码及示例——14
- PipedReader/PipedWriter 管道流进行多线程通讯
- Java8 I/O源码-PipedReader与PipedWriter
- java基础之“&&”和“||”,“&”和”|“
- Java和.Net 之战
- JAVA 之equal和hascode
- java 之 断点续传和高速缓存
- 4.7实现分支结构
- The difference between && and ; in the Linux command line
- 无监督特征学习
- 黑马程序员——java基础学习(数据类型小结)
- 一致性hash
- java之PipedWriter和PipedReader
- 怎样解题 --解题表(how to solve it)
- 靠谱好用,ANDROID SQLITE 增删查改
- javaScript动态原型的方式定义对象
- 黑马程序员—枚举类
- 差距
- Zeus 客户端的生成和使用
- iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)
- 寻找前K大数(复习各种排序)