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 out;
	}
	public void run() {
			try {
				for (int i = 65; i <65+26; i++) {
				out.wait(i);
				}
				out.close();
			} catch (Exception e) {
				// TODO 自动生成的 catch 块
				e.printStackTrace();
			}
	}
}
//B线程接收A线程发送的数据
class BThread extends Thread{
	private PipedInputStream in=null;

	public BThread(AThread aThread) throws Exception{
		in=new PipedInputStream(aThread.getOut());
	}
	public void run() {
		int len=-1;
		try {
			while((len=in.read())!=-1){
				System.out.println((char)len);
			}
			in.close();
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
	}
}
public class PipedOutputStreamDemo {
	//管道流
	public static void main(String[] args) throws Exception {
		AThread a=new AThread();
		BThread b=new BThread(a);
		a.start();
		b.start();
	}
}
时间: 2024-08-26 23:10:39

java IO 管道流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 管道流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基础知识回顾之javaIO类--管道流PipedOutputStream和PipedIutputStream

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

Java IO: 管道

原文链接 作者: Jakob Jenkov  译者: 李璟([email protected]) Java IO中的管道为运行在同一个JVM中的两个线程提供了通信的能力.所以管道也可以作为数据源以及目标媒介. 你不能利用管道与不同的JVM中的线程通信(不同的进程).在概念上,Java的管道不同于Unix/Linux系统中的管道.在Unix/Linux中,运行在不同地址空间的两个进程可以通过管道通信.在Java中,通信的双方应该是运行在同一进程中的不同线程. 通过Java IO创建管道 可以通过J

JavaLearning:JAVA IO Piped流

package org.fun.io; import java.io.IOException; import java.io.PipedInputStream; import java.io.PipedOutputStream; class Send implements Runnable{ private PipedOutputStream output=null; public Send(){ this.output=new PipedOutputStream(); } public Pip

Java IO 过滤流 字节缓冲流 BufferedInput/OutputStream

Java IO 过滤流 字节缓冲流 BufferedInput/OutputStream @author ixenos 概念 BufferedInput/OutputStream是实现缓存的过滤流,他们分别是FilterInput/OutputStream的子类. BufferedInputStream工作流程 stream-->buf--read buf-->I 1.当一个BufferedInputStream被创建时,一个内部的缓冲区 byte[] buf = new byte[size]

Java IO 理解流的概念

Java IO 理解流的概念 @author ixenos 在理解流时首先理解以下概念 1.流的来源和去向一般在构造器指出 2.方法中的形参一般是将流输出到某个位置,读取时从流读出数据(来自流)送到位置上,输出时将所要输出的数据(来自我)送到位置上

Java IO 节点流 FileInput/OutputStream

Java IO 节点流 FileInput/OutputStream @author ixenos 节点流之 文件流 文件读写是最常见的I/O操作,通过文件流来连接磁盘文件,读写文件内容 1.文件的读写工作流程: 1)打开文件输入流或输出流 FileInputStream实现读文件,调用FileInputStream的构造器可以打开一个文件输入流: 1 public FileInputStream(String fileName) throws FileNotFoundException //指

Java IO 转换流 字节转字符流

Java IO 转换流 字节转字符流 @author ixenos 字节流 输入字节流:---------| InputStream 所有输入字节流的基类. 抽象类.------------| FileInputStream 读取文件的输入字节流.------------| BufferedInputStream 缓冲输入字节流. 该类内部其实就是维护了一个8kb(8192b)字节数组而已. 该类出现的目的是为了提高读取文件数据的效率. 输出字节流:---------| OutputStream