Java管道流

管道流的主要作用可以用于两个线程之间的通信,有管道输出流 PipeOutputStream和管道输入流 PipeInputStream。然后通过connect将两个管道连接起来。

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

class Send implements Runnable{
	private PipedOutputStream pos = null;

	public Send() {
		// TODO Auto-generated constructor stub
		pos = new PipedOutputStream();
	}

	@Override
	public void run() {
		// TODO Auto-generated method stub
		String str = "Hello world!";
		try {
			pos.write(str.getBytes());
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}

		try {
			pos.close();
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
	}

	public PipedOutputStream getPos() {
		return pos;
	}
}

class Receive implements Runnable{
	private PipedInputStream pis = null;

	public Receive() {
		// TODO Auto-generated constructor stub
		pis = new PipedInputStream();
	}

	public PipedInputStream getPis() {
		return pis;
	}

	@Override
	public void run() {
		// TODO Auto-generated method stub
		byte[] b = new byte[1024];
		int len = 0;
		try {
			len = pis.read(b);
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}

		try {
			pis.close();
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}

		System.out.println(new String(b, 0, len));
	}	

}

public class PipeDemo01 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Send s = new Send();
		Receive r = new Receive();
		try {
			s.getPos().connect(r.getPis());
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}

		new Thread(s).start();
		new Thread(r).start();
	}

}

  

时间: 2024-10-07 08:31:41

Java管道流的相关文章

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管道流PipedStream

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

java:管道流(线程间管道流)

class Send implements Runnable{ PipedOutputStream pos = null; public Send() { this.pos = new PipedOutputStream(); } public PipedOutputStream getPipedOutputStream() { return this.pos; } @Override public void run() { // TODO 自动生成的方法存根 String str = "hel

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)对象读取.          并由其他线程将其写入到相应的端到输出流中.不能使用单线程

java IO 管道流PipedOutputStream/PipedInputStream

详情:管道流的具体实现 import java.io.IOException; import java.io.PipedInputStream; import java.io.PipedOutputStream; //A线程发送数据给B线程 class AThread extends Thread{ private PipedOutputStream out=new PipedOutputStream(); public PipedOutputStream getOut() { return o

JAVA的IO编程:管道流

掌握线程通讯流(管道流)的使用 管道流的主要作用是可以进行两个线程间的通讯,分为管道输入流(PipeOutputStream)和管道输出流(PipeInputStream). 如果要想进行管道输出,则必须把输出流连在输入流之上,在PipeOutputStream上有如下方法用于连接管道. void connect(PipedInputStream snk) 将此管道输出流连接到接收者. 要想连接输入和输出,必须使用此方法. PipeOutputStream输出方法: void write(byt

Java基础系列10:内存操作流,管道流,合并流,压缩流以及回退流

前言:这篇文章将对几个"非主流"的IO流进行简单的介绍 一 内存操作流 内存操作流的主要作用是完成内存的输入和输出.比如说在某些情况下需要生成一些临时信息,而将这些临时信息保存在文件中不仅要进行文件的读写而且在功能完成之后还需要删除这个临时文件,因此比较麻烦,这时或许就需要用到内存操作流了. 需要用到的API是:ByteArrayInputStream和ByteArrayOutputStream,分别表示输入流和输出流,示例代码如下: package javase.io; import