验证管道流:进程间通信

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

public class FileIO{
     public static void main(String []args){
         Send send=new Send();
         Recive recive=new Recive();

         try {
            send.getOut().connect(recive.getIn());
        } catch (IOException e) {

            e.printStackTrace();
        }
         new Thread(send).start();
         new Thread(recive).start();
     }
}

class Send implements Runnable{
    private PipedOutputStream out=null;
    public Send(){out =new PipedOutputStream();}//构造方法
    public PipedOutputStream getOut(){return this.out;}
    public void run() {
        String str="hello,Mr Zhou";
        try {
            out.write(str.getBytes());
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
class Recive implements Runnable{
    private PipedInputStream in=null;
    public Recive(){in=new PipedInputStream();}
    public PipedInputStream getIn(){return this.in;}
    public void run() {
        byte []by=new byte[1024];
        int len = 0;
        try {
             len=in.read(by);
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println("接受内容为:"+(new String(by,0,len)));
    }

}
时间: 2025-01-09 09:53:52

验证管道流:进程间通信的相关文章

管道流

管道流主要可以进行两个线程之间的通信. PipedOutputStream 管道输出流 PipedInputStream 管道输入流 [例子1]验证管道流 /** * 验证管道流 * */ import java.io.*; /** * 消息发送类 * */ class Send implements Runnable{ private PipedOutputStream out=null; public Send() { out=new PipedOutputStream(); } publi

MVC5-2 MVC的管道流与路由

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

一起talk C栗子吧(第八十七回:C语言实例--使用管道进行进程间通信概述)

各位看官们,大家好.上一回中咱们说的是进程间通信的样例.这一回咱们说的样例是:使用管道进行进程间通信. 闲话休提,言归正转. 让我们一起talk C栗子吧! 我们在前面的的章回中介绍了使用管道进行进程问的通信,时间不长,相信大家还记得.今天.我们介绍第二种进程间通信的方式:管道.大家都知道,我们使用信号在进程间通信时,本质上发送的是一个数值,假设想在进程之间发送一些数据时信号就无能为力了.此时,管道就派上了用场. 我们能够通过管道在进程之间发送数据. 接下来我们就具体介绍一下管道. 管道相似我们

一起talk C栗子吧(第八十八回:C语言实例--使用管道进行进程间通信一)

各位看官们,大家好,上一回中咱们说的是使用管道进行进程间通信概述的例子,这一回咱们说的例子是:使用第一种管道进行进程间通信.闲话休提,言归正转.让我们一起talk C栗子吧! 我们在上一回中介绍了三种管道,这一回中我们介绍第一种管道(伪管道)及其使用方法.主要是让大家明白如何使用管道进行进程间的通信. 第一种管道我称之为伪管道.在介绍它之前,我们先介绍两个函数:popen和pclose. popen函数的原型 FILE * popen(const char * command, const ch

JAVA之旅(三十)——打印流PrintWriter,合并流,切割文件并且合并,对象的序列化Serializable,管道流,RandomAccessFile,IO其他类,字符编码

JAVA之旅(三十)--打印流PrintWriter,合并流,切割文件并且合并,对象的序列化Serializable,管道流,RandomAccessFile,IO其他类,字符编码 三十篇了,又是一个阳光明媚的周末,一个又一个的周末,周而复始,不断学习,前方的路你可曾看见?随我一起走进技术的世界,流连忘返吧! 一.打印流PrintWriter 打印流有PrintWriter和PrintStream,他的特点可以直接操作输入流还有文件 该流提供了打印方法,可以将各种数据类型原样打印 file对象

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