是否可能(使用标准java。Nio api,没有主要的黑客攻击或代理或facade)获取输出流,并克隆它,以便每个对流的写入从一个复制到两个独立的输出流?
No。您必须编写一个委托给两个(所有)目标通道的WritableByteChannel
实现。不太难,只需要编写一个构造函数和三个方法。
EDIT您可以通过编写FilterOutputStream派生类对流做同样的事情。同样很简单
就像EJP说的那样,这非常简单,但是您也可以使用Apache的commons-io库来实现。
TeeOutputStream -来自文档:"输出流的经典拆分器。以unix 'tee'命令命名。它允许一个流分支,所以现在有两个流。"