对PipedOutputStream/PipedInputStream类的应用

来源:互联网 发布:进销存数据库表设计 编辑:程序博客网 时间:2024/06/11 12:57

编写程序实现两个线程间的管道通信。
实现代码如下:
Sender.java文件的代码:

import java.io.*;public class Sender extends Thread {    private PipedOutputStream out = new PipedOutputStream();    public PipedOutputStream getOutputStream() {        return out;    }    public void run() {        String strInfo = new String("hello,receiver!");        try {            out.write(strInfo.getBytes());            out.close();        } catch (Exception e) {            e.printStackTrace();        }    }}

Receiver.java文件中代码如下:

import java.io.*;public class Receiver extends Thread {    private PipedInputStream in = new PipedInputStream();    public PipedInputStream getInputStream() {        return in;    }    public void run() {        byte[] buf = new byte[1024];        try {            int len = in.read(buf);            System.out.println("the folloeing message comes from sender\n"                    + new String(buf, 0, len));        } catch (Exception e) {            e.printStackTrace();        }    }}

PipedStreamTest.java文件中的代码如下:

import java.io.*;public class PipedStreamTest {    public static void main(String[] args) {        // TODO Auto-generated method stub        Sender t1 = new Sender();        Receiver t2 = new Receiver();        PipedOutputStream out = t1.getOutputStream();        PipedInputStream in = t2.getInputStream();        try {            out.connect(in); // 或者in.connect(out);是一样的        } catch (Exception e) {            e.printStackTrace();        }        t1.start();        t2.start();    }}

运行结果:
这里写图片描述

0 0
原创粉丝点击