`

多线程管道流输入输出模式

    博客分类:
  • Java
 
阅读更多
import java.io.* ;
class Send implements Runnable{			// 线程类
	private PipedOutputStream pos = null ;	// 管道输出流
	public Send(){
		this.pos = new PipedOutputStream() ;	// 实例化输出流
	}
	public void run(){
		String str = "Hello World!!!" ;	// 要输出的内容
		try{
			this.pos.write(str.getBytes()) ;
		}catch(IOException e){
			e.printStackTrace() ;
		}
		try{
			this.pos.close() ;
		}catch(IOException e){
			e.printStackTrace() ;
		}
	}
	public PipedOutputStream getPos(){	// 得到此线程的管道输出流
		return this.pos ;	
	}
};
class Receive implements Runnable{
	private PipedInputStream pis = null ;	// 管道输入流
	public Receive(){
		this.pis = new PipedInputStream() ;	// 实例化输入流
	}
	public void run(){
		byte b[] = new byte[1024] ;	// 接收内容
		int len = 0 ;
		try{
			len = this.pis.read(b) ;	// 读取内容
		}catch(IOException e){
			e.printStackTrace() ;
		}
		try{
			this.pis.close() ;	// 关闭
		}catch(IOException e){
			e.printStackTrace() ;
		}
		System.out.println("接收的内容为:" + new String(b,0,len)) ;
	}
	public PipedInputStream getPis(){
		return this.pis ;
	}
};
public class PipedDemo{
	public static void main(String args[]){
		Send s = new Send() ;
		Receive r = new Receive() ;
		try{
			s.getPos().connect(r.getPis()) ;	// 连接管道
		}catch(IOException e){
			e.printStackTrace() ;
		}
		new Thread(s).start() ;	// 启动线程
		new Thread(r).start() ;	// 启动线程
	}
};
 
分享到:
评论

相关推荐

    Java之IO流学习总结

    Java IO流学习总结 Java流操作有关的类或接口: Java流类图结构: ...流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。... 可以用于多线程下载或多个线程同时写数据到文件。

    fastflow:FastFlow 基于模式的并行编程框架(以前在 sourceforge 上)

    FastFlow:C++ 中的高性能并行模式和构建块 ... 一个节点可以有零个、一个或多个输入通道和零个、一个或多个输出通道。 与流式应用程序一样,通信通道是单向和异步的。 它们是通过携带内存指针的单生产者单

    Linux程序设计 第4版.haozip01

    5.4.2 输出模式 154 5.4.3 控制模式 155 5.4.4 本地模式 155 5.4.5 特殊控制字符 155 5.4.6 终端速度 158 5.4.7 其他函数 159 5.5 终端的输出 162 5.5.1 终端的类型 163 5.5.2 识别终端类型 163 5.5.3 使用...

    Linux程序设计 第4版.haozip02

    5.4.2 输出模式 154 5.4.3 控制模式 155 5.4.4 本地模式 155 5.4.5 特殊控制字符 155 5.4.6 终端速度 158 5.4.7 其他函数 159 5.5 终端的输出 162 5.5.1 终端的类型 163 5.5.2 识别终端类型 163 5.5.3 使用...

    嵌入式Linux应用程序开发详解

    第9章 多线程编程 279 9.1 Linux下线程概述 279 9.1.1 线程概述 279 9.1.2 线程分类 280 9.1.3 Linux线程技术的发展 280 9.2 Linux线程实现 281 9.2.1 线程基本操作 281 9.2.2 线程访问控制 ...

    UNIX环境高级编程_第二版中文

    1.5 输入和输出  1.6 程序和进程  1.7 出错处理  1.8 用户标识  1.9 信号  1.10 时间值  1.11 系统调用和库函数  1.12 小结  习题  第2章 UNIX标准化及实现  2.1 引言  2.2 UNIX标准化  ...

    Java典型模块

    第1篇 Java开发必备基础 第1章 搭建Java开发环境 1.1 Java的过去、现在和未来 1.1.1 Java的历史 ...第31章 俄罗斯方块游戏网络版(Swing+多线程+网络编程) 31.1 俄罗斯方块游戏项目原理 31.1.1 基本原理 ...

    Java开发技术大全 电子版

    7.2.9管道输入输出流246 7.2.10过滤输入输出流248 7.3Reader和Writer类使用249 7.3.1InputStreamReader类中的方法249 7.3.2OutputStreamWriter类中的方法250 7.3.3从键盘输入250 7.3.4文件复制251 7.4文件...

    UNIX环境高级编程(第二版中文)

    1.5 输入和输出 6 1.6 程序和进程 8 1.7 出错处理 10 1.8 用户标识 12 1.9 信号 14 1.10 时间值 15 1.11 系统调用和库函数 16 1.12 小结 17 习题 18 第2章 UNIX标准化及实现 19 2.1 引言 19 ...

    unix环境编程电子书

    107 第5章 标准I/O库 109 5.1 引言 109 5.2 流和FILE对象 109 5.3 标准输入、标准输出和标准出错 110 5.4 缓冲 110 5.5 打开流 112 5.6 读和写流 114 5.7 每次一行I/O 116 5.8 标准I/O的效率 117 ...

    UNIX环境高级编程

    1.5 输入和输出 6 1.6 程序和进程 8 1.7 出错处理 10 1.8 用户标识 12 1.9 信号 14 1.10 时间值 15 1.11 系统调用和库函数 16 1.12 小结 17 习题 18 第2章 UNIX标准化及实现 19 2.1 引言 19 ...

    UNIX环境高级编程_第2版.part1

    5.3 标准输入、标准输出和标准出错110 5.4 缓冲110 5.5 打开流112 5.6 读和写流114 5.7 每次一行i/o 116 5.8 标准i/o的效率117 5.9 二进制i/o 119 5.10 定位流120 5.11 格式化i/o 121 5.12 实现细节125 ...

    UNIX环境高级编程_第2版.part2

    5.3 标准输入、标准输出和标准出错110 5.4 缓冲110 5.5 打开流112 5.6 读和写流114 5.7 每次一行i/o 116 5.8 标准i/o的效率117 5.9 二进制i/o 119 5.10 定位流120 5.11 格式化i/o 121 5.12 实现细节125 ...

Global site tag (gtag.js) - Google Analytics