博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
io流-多线程连接管道流
阅读量:2339 次
发布时间:2019-05-10

本文共 1668 字,大约阅读时间需要 5 分钟。

//io流-多线程连接管道流import java.io.*;class Read implements Runnable//implements Runnable 实现Runnable接口 管道流必须使用多线程,因为PipedInputStream是进程阻塞方法{
private PipedInputStream in;//管道流一生成就要存在 Read(PipedInputStream in)//构造器 { this.in = in; } public void run()//实现Runnable接口 就必须 重写run()方法 { try { byte[] buf = new byte[1024]; System.out.println("读取前,没有数据就阻塞"); int len = in.read(buf);//int read(byte[] b) System.out.println("读到数据,阻塞结束"); //从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。 String s = new String(buf,0,len); System.out.println(s); in.close(); } catch (IOException e) { throw new RuntimeException("管道读取流失败"); } }}class Write implements Runnable{
private PipedOutputStream out; Write(PipedOutputStream out) { this.out = out; } public void run() { try { System.out.println("开始写入数据 ,等待6秒后"); Thread.sleep(6000);//释放执行权6秒 out.write("piped lai la".getBytes());//getBytes()是将一个字符串转化为一个字节数组 out.close(); } catch (IOException e) { throw new RuntimeException("管道输出流失败"); } }}class PipedStreamDemo {
public static void main(String[] args) throws IOException { PipedInputStream in = new PipedInputStream(); PipedOutputStream out = new PipedOutputStream(); in.connect(out);//管道in 和 out 进行连接 Read r = new Read(in);//线程对象 传入 管道流 Write w = new Write(out);//线程对象 传入 管道流 new Thread(r).start();//开启新线程 new Thread(w).start();//开启新线程 }}

转载地址:http://wzzvb.baihongyu.com/

你可能感兴趣的文章
详解HDR的三个标准——HLG/HDR10/Dolby Vision
查看>>
流言终结者 1080P全高清都等于高画质?
查看>>
PSNR指标值
查看>>
灰度图像-图像增强 中值滤波
查看>>
两种HDR格式(HLG, HDR10)的理解
查看>>
视频主观质量对比工具(Visual comparision tool based on ffplay)
查看>>
HDMI 接口及CEC信号
查看>>
H.264专利介绍
查看>>
YUV格式小结
查看>>
log4j2.xml实用例子
查看>>
Dockerfile中的CMD和ENTRYPOINT有什么区别?
查看>>
jQuery提示和技巧
查看>>
是否可以在Python中将长行分成多行[重复]
查看>>
命令行上的Node.js版本? (不是REPL)
查看>>
你什么时候使用Builder模式? [关闭]
查看>>
在jQuery中每5秒调用一次函数的最简单方法是什么? [重复]
查看>>
如何在Windows上安装和使用curl?
查看>>
Angular 2+中的ngShow和ngHide等效于什么?
查看>>
如何将Java String转换为byte []?
查看>>
@Transactional注释在哪里?
查看>>