A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马马耶夫岗 中级黑马   /  2016-4-22 23:52  /  483 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

管道流,用于线程间的通信。一个线程的
PipedInputStream对象从另一个线程的
PipedOutputStream对象读取输入。要使
管道流有用,必须同时构造管道输入流和管
道输出流 。
PipedInputStream 与PipedOutputStream总
是成对出现的
管道流继承自InputStream与
OutputStream,所以他们并不是过滤流
•  PipedInputStream
– 传送输入流应该连接到传送输出流;传送输入
流会提供要写入传送输出流的所有数据字节。
通常,数据由某个线程从 PipedInputStream
对象读取,并由其他线程将其写入到相应的
PipedOutputStream。不建议对这两个对象尝
试使用单个线程,因为这样可能会死锁该线程。
传送输入流包含一个缓冲区,可在缓冲区限定
的范围内将读操作和写操作分离开
•  PipedOutputStream
– 传送输出流可以连接到传送输入流,以创建通
信管道。传送输出流是管道的发送端。通常,
数据由某个线程写入 PipedOutputStream 对象,
并由其他线程从连接的 PipedInputStream 读
取。不建议对这两个对象尝试使用单个线程,
因为这样可能会死锁该线程
•  PipedInputStream 构造方法
–  PipedInputStream()
• 创建尚未连接的 PipedInputStream
–  PipedInputStream(PipedOutputStream src)
• 创建 PipedInputStream,以使其连接到传送输出流
src
• public void
connect(PipedOutputStream src)
• 使此传送输入流连接到传送输出流 src。如果此对象
已经连接到其他某个传送输出流,则抛出
IOException
– 如果 src 为未连接的传送输出流,snk 为未连
接的传送输入流,则可以通过以下任一调用使
其连接:
– snk.connect(src)
• 或:
• src.connect(snk) 这两个调用的效果相同。
•  PipedOutputStream 构造方法
–  PipedOutputStream()
• 创建尚未连接到传送输入流的传送输出流
–  PipedOutputStream(PipedInputStream snk)
• 创建连接到指定传送输入流的传送输出流。
• public void  connect(PipedInputStream snk)
• 将此传送输出流连接到接收者。如果此对象已经连
接到其他某个传送输入流,则抛出 IOException。
– 如果 snk 为未连接的传送输入流,而 src 为未
连接的传送输出流,则可以通过以下任一调用
使其连接:
– src.connect(snk)
– 或:
– snk.connect(src)
– 这两个调用的效果相同。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马