管道流

管道流主要可以进行两个线程之间的通信。


PipedOutputStream 管道输出流

PipedInputStream 管道输入流

【例子1】验证管道流


/**

 * 验证管道流

 * */

import java.io.*;

/**

 * 消息发送类

 * */

class Send implements Runnable{

    private PipedOutputStream out=null;

    public Send() {

        out=new PipedOutputStream();

    }

    public PipedOutputStream getOut(){

        return this.out;

    }

    public void run(){

        String message="hello , Rollen";

        try{

            out.write(message.getBytes());

        }catch (Exception e) {

            e.printStackTrace();

        }try{

            out.close();

        }catch (Exception e) {

            e.printStackTrace();

        }

    }

}

/**

 * 接受消息类

 * */

class Recive implements Runnable{

    private PipedInputStream input=null;

    public Recive(){

        this.input=new PipedInputStream();

    }

    public PipedInputStream getInput(){

        return this.input;

    }

    public void run(){

        byte[] b=new byte[1000];

        int len=0;

        try{

            len=this.input.read(b);

        }catch (Exception e) {

            e.printStackTrace();

        }try{

            input.close();

        }catch (Exception e) {

            e.printStackTrace();

        }

        System.out.println("接受的内容为 "+(new String(b,0,len)));

    }

}

/**

 * 测试类

 * */

class hello{

    public static void main(String[] args) throws IOException {

        Send send=new Send();

        Recive recive=new Recive();

        try{

//管道连接

            send.getOut().connect(recive.getInput());

        }catch (Exception e) {

            e.printStackTrace();

        }

        new Thread(send).start();

        new Thread(recive).start();

    }

}

【运行结果】:接受的内容为 hello , Rollen

原文地址:https://www.cnblogs.com/yuyu666/p/9733903.html

时间: 2024-11-20 15:45:42

管道流的相关文章

Java IO7:管道流、对象流

前言 前面的文章主要讲了文件字符输入流FileWriter.文件字符输出流FileReader.文件字节输出流FileOutputStream.文件字节输入流FileInputStream,这些都是常见的流类.当然除了这些流类之外,Java还提供了很多的流类给用户使用,本文就看一下别的流. 管道流 管道流主要用于连接两个线程的通信.管道流也分为字节流(PipedInputStream.PipedOutputStream)和字符流(PipedReader.PipedWriter).比如一个Pipe

JAVA基础学习day22--IO流四-对象序列化、管道流、RandomAccessFile、DataStream、ByteArrayStream、转换流的字符编码

一.对象序列化 1.1.对象序列化 被操作的对象需要实现Serializable接口 1.2.对象序列化流ObjectOutputStream与ObjectInputStream ObjectInputStream 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化. ObjectOutputStream 和 ObjectInputStream 分别与 FileOutputStream 和 FileInputStream 一起使用时,可以为应用程序提供对对象图形的

java基础知识回顾之javaIO类--管道流PipedOutputStream和PipedIutputStream

管道流(线程通信流):管道流的主要作用是可以进行两个线程间的通讯,分为管道输出流(PipedOutputStream).管道输入流(PipedInputStream),如果想要进行管道输出,则必须要把输出流连在输入流之上.如图所示: 1.管道输入流应该连接到管道输出流 ,输入流和输出流可以直接连接       2.使用多线程操作,结合线程进行操作.通常由某个线程从管道输入流中(PipedInputStream)对象读取.          并由其他线程将其写入到相应的端到输出流中.不能使用单线程

IO-05内存操作流06管道流

JAVA中可以将输出的位置设置在内存上,此时使用ByteArrayInputStream,ByteArrayOutputStream来完成输入,输出功能. 利用这两个类实现大小字母的转换: package lianxijihe; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; impo

java管道流PipedStream

管道流的主要作用是可以进行两个线程间的通信

黑马程序猿——25,打印流,合并流,对象序列化,管道流,RandomAccessFile

------<ahref="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 黑马程序猿--25.打印流.合并流.对象序列化,管道流,RandomAccessFile /* IO流的打印流:专门用于打印的流 字节打印流PrintStream PrintStream的构造函数能够接收file对象,String型字符串路

MVC5-1 ASP.NET的管道流

MVC5 和WebForm的区别 WebForm是一个Page贯穿了一个.CS代码. 1对1 = 耦合在一起 MVC在Controller中将 bihind和page进行了分离. 多对多 = 松耦合 对于MVC来说是通过action返回相应的View VS的调用堆栈 Http管道的大致流程 PipelineRumtime => HttpRuntime => HttpApplication => MvcHandler => Controller => HomeControlle

MVC5-2 MVC的管道流与路由

自定义Modue与Hander 之前讲了管道流中的Module与Hndler.现在我们可以去自定义Module和Handler Module 其实很简单,一共需要三个步骤 定义一个类去继承IHttpModule.并实现接口,这里推荐类以Module结尾 在Init方法中注册我们所需要的事件,完成拦截器. 在WebConfig的System.webServer节点中配置Modules Handler 和自定义Module类似 创建一个类去继承IHttpHandler接口,并实现接口. 在Proce

java 管道流PipedOutputStream和PipedInputStream基本操作

java的管道流要PipedOutputSream和PipedInputStream结合起来使用,管道流主要用来进行线程之间的通信. 上代码 import java.io.*; public class PipeStreamDemo { public static void main(String[] args) { PipedOutputStream out=null; PipedInputStream in=null; Sender sender=new Sender(); Receiver

Java基础学习笔记【10】打印流、管道流

ByteArrayInputStream和ByteArrayOutputStream内存流,操作基本和文件流其他流差不多,主要使用在程序需要用临时文件,关闭内存流是无效的所以不用关闭 操作流,不管是什么流,最保险的方式,就是最后都close一下 内存流: ByteArrayInputStream.ByteArrayOutputStream.CharArrayReader. CharArrayWriter: 打印流: 1 2 3 4 5 6 PrintStream: print(Object o)