JavaSE-管道流
1,)创建管道输出流PipedOutputStream pos和管道输入流PipedInputStream pis
2,)将pos和pis匹配,pos.connect(pis);
3,)将pos赋给信息输入线程,pis赋给信息获取线程,就可以实现线程间的通讯了
说白了就是两个线程之间的沟通 一个发送 一个接受 简介来说看下面
- PipedInputStream PipedOutputStream.这两个类的实例对象必须要通过connect方法连接.
话不多少 上码!
- package hwc.java.IO;
- //管道流 两个线程之间的爱情故事
- import java.io.IOException;
- import java.io.PipedInputStream;
- import java.io.PipedOutputStream;
- /**
- * Created by onlion on 2017/6/6 0006.
- */
- public class IoRunnable {
- public static void main(String[] args){
- Person p = new Person();
- Spook s = new Spook();
- try {
- p.getPos().connect(s.getPis());
- } catch (IOException e) {
- e.printStackTrace();
- }
- new Thread(p).start();
- new Thread(s).start();
- }
- }
- //发送端
- class Person implements Runnable{
- private PipedOutputStream pos = null;
- public Person(){
- pos = new PipedOutputStream();
- }
- @Override
- public void run() {
- String I ="sbbbbbb";
- try {
- pos.write(I.getBytes());
- } catch (IOException e) {
- e.printStackTrace();
- }
- try {
- pos.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- public PipedOutputStream getPos(){
- return pos;
- }
- }
- //接收端
- class Spook implements Runnable{
- PipedInputStream pis = null;
- public Spook(){
- this.pis = new PipedInputStream();
- }
- @Override
- public void run() {
- byte[] b = new byte[1024];//这里是内存空间
- int length = 0;
- try {
- length =pis.read(b);
- } catch (IOException e) {
- e.printStackTrace();
- }
- try {
- pis.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- System.out.println(new String(b,0,length));
- }
- public PipedInputStream getPis(){
- return pis;
- }
- }
JavaSE-管道流的更多相关文章
- [javaSE] IO流(管道流)
之前我们使用io流,都是需要一个中间数组,管道流可以直接输入流对接输出流,一般和多线程配合使用,当读取流中没数据时会阻塞当前的线程,对其他线程没有影响 定义一个类Read实现Runable接口,实现r ...
- Java IO7:管道流、对象流
前言 前面的文章主要讲了文件字符输入流FileWriter.文件字符输出流FileReader.文件字节输出流FileOutputStream.文件字节输入流FileInputStream,这些都是常 ...
- MVC5-2 MVC的管道流与路由
自定义Modue与Hander 之前讲了管道流中的Module与Hndler.现在我们可以去自定义Module和Handler Module 其实很简单,一共需要三个步骤 定义一个类去继承IHttpM ...
- MVC5-1 ASP.NET的管道流
MVC5 和WebForm的区别 WebForm是一个Page贯穿了一个.CS代码. 1对1 = 耦合在一起 MVC在Controller中将 bihind和page进行了分离. 多对多 = 松耦合 ...
- JAVA基础学习day22--IO流四-对象序列化、管道流、RandomAccessFile、DataStream、ByteArrayStream、转换流的字符编码
一.对象序列化 1.1.对象序列化 被操作的对象需要实现Serializable接口 1.2.对象序列化流ObjectOutputStream与ObjectInputStream ObjectInpu ...
- Java管道流
管道流的主要作用可以用于两个线程之间的通信,有管道输出流 PipeOutputStream和管道输入流 PipeInputStream.然后通过connect将两个管道连接起来. import jav ...
- Java:IO流其他类(字节数组流、字符数组流、数据流、打印流、Properities、对象流、管道流、随机访问、序列流、字符串读写流)
一.字节数组流: 类 ByteArrayInputStream:在构造函数的时候,需要接受数据源,而且数据源是一个字节数组. 包含一个内部缓冲区,该缓冲区包含从流中读取的字节.内部计数器跟踪 read ...
- java基础知识回顾之javaIO类--管道流PipedOutputStream和PipedIutputStream
管道流(线程通信流):管道流的主要作用是可以进行两个线程间的通讯,分为管道输出流(PipedOutputStream).管道输入流(PipedInputStream),如果想要进行管道输出,则必须要把 ...
- Java管道流PipedStream
管道读取流和管道写入流可以像管道一样对接上,管道读取流就可以读取管道写入流写入的数据.需要注意的是需要加入多线程技术,因为单线程,先执行read,会发生死锁,因为read方法是阻塞式的,没有数据的re ...
- JAVA IO之管道流总结大全(转)
要在文本框中显示控制台输出,我们必须用某种方法“截取”控制台流.换句话说,我们要有一种高效地读取写入到System.out和 System.err 所有内容的方法.如果你熟悉Java的管道流Piped ...
随机推荐
- AOP事务解决方案和分布式事务方案
http://www.cnblogs.com/jianxuanbing/p/7242254.html http://www.cnblogs.com/jianxuanbing/p/7199457.htm ...
- JQuery DOM操作 、属性和CSS样式操作、其他函数
DOM操作 1.在div1内部最后追加一个节点 $("#div1").append("<img src='../01-HTML基本标签/img/Male.gif'/ ...
- CentOS6.5 64位下安装部署Ansible
这里使用的软件包为一下版本 Python-2.7.12.tgz pip-9.0.1.tar.gz ansible-2.2.0.0.tar.gz 其他依赖包使用pip方式安装 方便说明做以下设定: 控制 ...
- 微软云消息队列 Azure service bus queue
前言 第一次使用消息队列,遇到了一些问题:同一个消息有多次出列.是一个消息只入列一次,还是多次?还是因为出列问题,出列了多次? Microsoft Azure service bus queue Az ...
- Python教程大纲
缘起:最近想在部门推Python语言,写这个blog主要就是个教程大纲,之前先列出一些资源:Python历史:http://www.docin.com/p-53019548.html ...
- AJAX的get和post请求原生编写方法
var xhr=new XMLHttpRequest(); xhr.onreadystatechange=function(){ if(xhr.readyState===4){ if(xhr.stat ...
- 【原创】整合Spring4+Hibernate4+Struts2时NullPointerException问题解决
1.开场白 相信SSH初学者肯定遇到过这个问题,但是又是百思不得其解,明白了之后就恍然大悟. 2.问题描述 程序实现过程是UserAction中调用UserService,UserService的实现 ...
- [ Java面试题 ]基础篇之二
1.String s = new String("xyz");创建了几个StringObject?是否可以继承String类? 两个或一个都有可能,"xyz"对 ...
- 设计模式的征途—17.模板方法(Template Method)模式
在现实生活中,很多事情都需要经过几个步骤才能完成,例如请客吃饭,无论吃什么,一般都包含:点单.吃东西.买单等几个步骤,通常情况下这几个步骤的次序是:点单=>吃东西=>买单.在这3个步骤中, ...
- pycharm中from xx import xx报错:Unresolved reference
出现问题:无法引用到相关的类,但是这些类确实都在工程中 分析原因:import不成功是路径没对应上,pycharm默认该项目的根目录为source目录 解决方案: 将对应的项目searchTest,选 ...