管道流的设计是为了实现线程之间的通信。
一个线程的PipedInputStream对象能够从另外一个线程的PipedOutputStream对象中读取数据。
因此,使用管道流可以实现各个程序模块之间的松耦合通信。我们可以灵活地将多个使用管道流的模块的输出流与输入流相连接,当一个模块被替换时,不会影响其他模块。
例如,有一个使用了管道流的加密模块,我们的程序只需要向该模块的输入流中送入数据,从该模块的输出流中取得数据,就完成了数据的加密工作,这个模块就像一个黑匣子,我们根本不需要去了解它的具体实现细节。
管道流可以实现多线程之间的数据通信,自然也适用于一个线程的数据通信。当然在不涉及多线程间通信时,选择其它IO流可能会更加适合。 |