JAVA流之管道流PipedInputStream,PipedOutputStream

管道流主要作用是可以连接两个线程间的通信。管道流也分为字节流(PipedInputStream、PipedOutputStream)与字符流(PipedReader、PipedWriter)两种类型.

一个PipedInputStream 对象必须和一个PipedOutputStream 对象进行连接而产生一个通信管道,PipedOutputStream 可以向管道中写入数据,PipedInputStream 可以从管道中读取 PipedOutputStream 写入的数据。

生产者消费者模式经典应用

demo如下

package com.yudian.io.stream;

import java.io.IOException;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;

public class PipedSteam {
	public static void main(String[] args) {
		PipedInputStream pi = new PipedInputStream();
		PipedOutputStream po = new PipedOutputStream();
		try {
			pi.connect(po);
			po.write("测式".getBytes("utf8"));
			po.close();
			byte[] bytes = new byte[100];
			pi.read(bytes);
			System.out.println(new String(bytes, "utf8"));
			pi.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

打印结果

测试

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏猿天地

用aop加redis实现通用接口缓存

系统在高并发场景下,最有用的三个方法是缓存,限流,降级。 缓存就是其中之一,目前缓存基本上是用redis或者memcached。 redis和memcached...

37770
来自专栏androidBlog

一步步拆解 LeakCanary

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdutxiaoxu/article/de...

11610
来自专栏chenssy

【死磕Java并发】—-深入分析CAS

CAS,Compare And Swap,即比较并交换。Doug lea大神在同步组件中大量使用CAS技术鬼斧神工地实现了Java多线程的并发操作。整个AQS同...

33750
来自专栏张善友的专栏

在Linux和Windows平台上操作MemoryMappedFile(简称MMF)

操作系统很早就开始使用内存映射文件(Memory Mapped File)来作为进程间的共享存储区,这是一种非常高效的进程通讯手段。.NET 4.0新增加了一个...

23560
来自专栏Elasticsearch实验室

Elasitcsearch 底层系列 Lucene 内核解析之 Doc Value

       Elasticsearch 支持行存和列存,行存用于以文档为单位顺序存储多个文档的原始内容,在 Elasitcsearch 底层系列 Lucene...

51650
来自专栏xdecode

Netty之粘包分包

粘包现象 客户端在一个for循环内连续发送1000个hello给Netty服务器端,   1 Socket socket = new Socke...

37360
来自专栏公众号_薛勤的博客

Jsoup模拟登录带验证码的教务系统(原理详解)

在模拟登陆该教务系统时,笔者观察到该教务系统还有一个不需要验证码即可登陆的网址:http://jwxt.qlu.edu.cn/jsxsd/xsxk/xklc_l...

19320
来自专栏IMWeb前端团队

co.js 异步回调的原理

本文作者:IMWeb 何方舟 原文出处:IMWeb社区 未经同意,禁止转载 co.js 作为 koa 框架的核心库,利用 es6 Generator ...

25480
来自专栏liulun

ASP.NET Core教程【三】实体字段属性、链接标签、并发数据异常、文件上传及读取

前文索引: ASP.NET Core教程【二】从保存数据看Razor Page的特有属性与服务端验证 ASP.NET Core教程【一】关于Razor Page...

32760
来自专栏hrscy

Alamofire 上传图片入门教程(下)

在 ViewController 的 extension 里面,uploadImage(_:progress:completion:) 的下面添加如下的代码:

39920

扫码关注云+社区

领取腾讯云代金券