IO 输入与输出(3) -- 节点流之四PipedInputStream和PipedOutputStream

管道流类PipedInputStream类和PipedOutputStream类用于在应用程序中创建管道通信。一个PipedInputStream实例对象必须和PipedOutputStream实例对象进行连接而产生一个通信管道,PipedOutputsStream可以向管道中写入数据,PipedInputStream可以从管道中读取PipedOutputStream写入的数据,这两个类主要用来完成线程之间的通信,一个线程的PipedInputStream对象能够从另外一个线程的PipedOutputStream对象中读取数据。

 

下面来看一个两个线程之间互相通信的例子:

 

建一个发送者的类:

Sender.java

再建一个接收者的类:

Receiver.java

最后我们编写一个控制程序:

PipedStreamTest.java

 

运行该程序的时候应该会在命令行输出以下信息:

 

接收到的信息如下:

Hello! Welcome to my space!

 

另外,JDK还提供了PipedReaderPipedWriter类,用来处理字符文本的管道通信。它们和PipedInputStream类和PipedOutputStream类使用方法很类似,这里Richer就不多介绍了。

 

使用管道流类可以实现各个程序模块之间的松耦合通信,使用管道流类进行通信的模块,具有强内聚弱耦合的特点,一块模块被替换不会影响到其他的模块。这样就可以在程序中灵活的将多个这样的模块的输入流和输出流相连,以拼装成满足各种应用的程序,而不用对模块内部进行修改。上面例子程序中的SenderReceiver的输入和输出管道相连,Sender发送的数据就被Receiver接收到了。

 

版权声明: 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值