是否可以在java.nio(或常规java io)中fork(克隆)一个流?

时间:2011-11-23 21:33:37

标签: java stream fork nio

是否可以(使用标准的java.nio api,没有主要的黑客攻击或代理或连接)获取输出流并克隆它,以便每次写入流都被复制到两个独立的输出流中?

2 个答案:

答案 0 :(得分:3)

没有。您必须编写委派给两个(所有)目标通道的WritableByteChannel实现。不太难,只需要一个构造函数和三个方法来编写。

编辑您可以通过编写FilterOutputStream派生类为流做同样的事情。再次非常容易。

答案 1 :(得分:0)

就像EJP说的那样非常简单,但你也可以使用Apache的commons-io库。

TeeOutputStream - 来自Docs:“OutputStream的经典分割器。以unix'tee'命令命名。它允许分支流,因此现在有两个流。”