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();
} }
Java管道流的更多相关文章
- Java管道流PipedStream
管道读取流和管道写入流可以像管道一样对接上,管道读取流就可以读取管道写入流写入的数据.需要注意的是需要加入多线程技术,因为单线程,先执行read,会发生死锁,因为read方法是阻塞式的,没有数据的re ...
- Java管道流学习
管道流 作用:用于线程之间的数据通信 管道流测试:一个线程写入,一个线程读取 import java.io.IOException; import java.io.PipedInputStream; ...
- java 管道流代码示例
import java.io.IOException;import java.io.PipedInputStream;import java.io.PipedOutputStream; public ...
- java 管道流PipedInputStream,PipedInputStream和随机访问文件 RandomAccessFile
http://blog.csdn.net/zlp1992/article/details/50298195 给个链接自己去看吧.网上资料不是很多,而且自己也不想写了 RandomAccessFil ...
- java:管道流(线程间管道流)
class Send implements Runnable{ PipedOutputStream pos = null; public Send() { this.pos = new PipedOu ...
- JAVA IO之管道流总结大全(转)
要在文本框中显示控制台输出,我们必须用某种方法“截取”控制台流.换句话说,我们要有一种高效地读取写入到System.out和 System.err 所有内容的方法.如果你熟悉Java的管道流Piped ...
- Java IO7:管道流、对象流
前言 前面的文章主要讲了文件字符输入流FileWriter.文件字符输出流FileReader.文件字节输出流FileOutputStream.文件字节输入流FileInputStream,这些都是常 ...
- JAVA基础学习day22--IO流四-对象序列化、管道流、RandomAccessFile、DataStream、ByteArrayStream、转换流的字符编码
一.对象序列化 1.1.对象序列化 被操作的对象需要实现Serializable接口 1.2.对象序列化流ObjectOutputStream与ObjectInputStream ObjectInpu ...
- Java:IO流其他类(字节数组流、字符数组流、数据流、打印流、Properities、对象流、管道流、随机访问、序列流、字符串读写流)
一.字节数组流: 类 ByteArrayInputStream:在构造函数的时候,需要接受数据源,而且数据源是一个字节数组. 包含一个内部缓冲区,该缓冲区包含从流中读取的字节.内部计数器跟踪 read ...
随机推荐
- select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET(转)
select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型, 原型: int select(int maxfd,fd_set *rds ...
- SQLServer中临时表与表变量的区别分析(转)
在实际使用的时候,我们如何灵活的在存储过程中运用它们,虽然它们实现的功能基本上是一样的,可如何在一个存储过程中有时候去使用临时表而不使用表变量,有时候去使用表变量而不使用临时表呢? 临时表 临时表与永 ...
- hdu 4751(dfs染色)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4751 思路:构建新图,对于那些两点连双向边的,忽略,然后其余的都连双向边,于是在新图中,连边的点是能不 ...
- JVM的堆分配
为了展示虚拟机如何使用方法区中的信息,下面来举例说明: class Lava { private int speed = 5; void flow(){ } } public class ...
- HTML-Canvas01
画直线: var c = document.getElementById("myCanvas"); //不要忘写document var ctx = c.getContext(&q ...
- Xamarin Android项目运行失败
Xamarin Android项目运行失败 错误信息:Build Failed: MonoDroid does not support running the previous version. P ...
- 拓扑排序 POJ 1049 Sorting It All Out
题目传送门 /* 拓扑排序裸题:有三种情况: 1. 输入时发现与之前的矛盾,Inconsistency 2. 拓扑排序后,没有n个点(先判断cnt,即使一些点没有边连通,也应该是n,此时错误是有环): ...
- HDU3491 Thieves(最小割)
题目大概说,一个国家有n个城市,由m条双向路相连,小偷们从城市s出发准备到h城市,警察准备在某些除了s和h外的城市布置警力抓小偷,各个城市各有警力所需的数目.问警察最少要布置多少警力才能万无一失地抓住 ...
- Fengshui-[SZU_B40]
Description Fengshui is an ancient subject in Chinese tradition. Someone considers it as science and ...
- python 代码片段6
#coding=utf-8 # python常用的列表list和字符串string # tuple元组,一个身有残疾的只读列表 s='python' print s[0] print s[-1] # ...