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 receiver=new Receiver();
		out=sender.getOutputStream();
		in=receiver.getInputStream();
		try
		{
			out.connect(in);
		}
		catch (IOException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		sender.start();
		receiver.start();
	}
}

class Sender extends Thread
{
	private PipedOutputStream out=new PipedOutputStream();
	public PipedOutputStream getOutputStream()
	{
		return out;
	}
	public void run()
	{
		String str="Hello, my name is cjc!";
		try
		{
			out.write(str.getBytes());
			out.close();
			System.out.println("The sender Thread sends string \""+str+"\".");
		}
		catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
class Receiver extends Thread
{
	private PipedInputStream in=new PipedInputStream();
	public PipedInputStream getInputStream()
	{
		return in;
	}
	public void run()
	{
		byte[] b=new byte[1024];
		try
		{
			int num=in.read(b);
			in.close();
			if(num==-1)
			{
				System.out.println("The receiver Thread receives nothing!!!");
			}
			else
			{
				System.out.println("The receiver Thread receices \""+new String(b,0,num)+"\".");
			}
		}
		catch (IOException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

java 管道流PipedOutputStream和PipedInputStream基本操作,布布扣,bubuko.com

时间: 2024-08-06 16:05:28

java 管道流PipedOutputStream和PipedInputStream基本操作的相关文章

java下管道流 PipedOutputStream 与PipedInputStream

package cn.stat.p2.demo; import java.io.IOException; import java.io.PipedInputStream; import java.io.PipedOutputStream; public class pipedintpudemo { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException

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

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

java 字符流writer、reader基本操作及理解

字符和字节有什么区别,额--这个我也不知道. 1.基本操作实例 import java.io.*; public class CharDemo { public static void main(String[] args) { File f=new File("F:\\workspace\\Javaprj\\test.txt"); Writer out=null; Reader in=null; try { out=new FileWriter(f); String str=&quo

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

管道流的主要作用可以用于两个线程之间的通信,有管道输出流 PipeOutputStream和管道输入流 PipeInputStream.然后通过connect将两个管道连接起来. import java.io.PipedInputStream; import java.io.PipedOutputStream; class Send implements Runnable{ private PipedOutputStream pos = null; public Send() { // TODO

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使用PipedStream管道流通信

多线程使用PipedStream 通讯 Java 提供了四个相关的管道流,我们可以使用其在多线程进行数据传递,其分别是 类名 作用 备注 PipedInputStream 字节管道输入流 字节流 PipedOutputStream 字节管道输出流 字节流 PipedReader 字符管道读取 字符流 PipedWriter 字符管道写入 字符流 其分为两类:字节流和字符流,基本步骤为:线程A写入数据到输出流/写入,线程B读取数据从输入流/字符读取,从而实现线程通讯,下面我们先看下基于字节流的实现

java io系列04之 管道(PipedOutputStream和PipedInputStream)的简介,源码分析和示例

本章,我们对java 管道进行学习. 转载请注明出处:http://www.cnblogs.com/skywang12345/p/io_04.html java 管道介绍 在java中,PipedOutputStream和PipedInputStream分别是管道输出流和管道输入流.它们的作用是让多线程可以通过管道进行线程间的通讯.在使用管道通信时,必须将PipedOutputStream和PipedInputStream配套使用.使 用管道通信时,大致的流程是:我们在线程A中向PipedOut