Java 输入输出流教程(三)——【管道】(原作:Java IO Tutorial by Jakob Jenkov)

管道

Java IO中的管道提供了在同一个JVM下,两个线程之间的交流功能。同样,管道也是一个常见的源或目标。

Java中的管道概念与Unix/Linux中的管道有所不同,Unix/Linux中两个在不同空间下运行的进程可以通过pipe交换数据。在Java中,pipes必须要在同一个进程中的不同线程之间进行通讯。

利用Java IO建立管道

通过PipedOutputStreamPipedInputStream可以建立一个管道。PipedInputStream应该与一个PipedOutputStream相连接,一个线程通过PipedOutputStream写入数据,通过与之相连接的PipedInputStream被另一个线程读取。

管道的例子

下面这个简单的例子解释了如何讲一个PipedInputStream与一个PipedOutputStream联系起来。

PipedOutputStream output = new PipedOutputStream();
PipedInputStream input = new PipedOutputStream(output);

你也可以用connect()方法将两个管道流联系起来,PipedInputStream和PipedOutputStream均有connect()方法来连接彼此。

管道及线程

请记住,当使用两个相连接的管道流的时候,将一个流传递给另一个,另一个传递给第三个……访问管道流的read()方法和write()方法是阻塞的,这意味着如果你试图在同一个线程读或者写,这将导致线程死锁。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值