两个OutputStream而不是一个?

时间:2010-03-26 11:07:22

标签: java outputstream

我正在处理商业Java API,它只公开以下日志记录配置:

cplex.setOut(OutputStream arg0);

我想记录两个流:文件和控制台。 有可能吗?

4 个答案:

答案 0 :(得分:11)

我相信是。

我会使用apache commons io lib

例如

FileOutputStream fos = ...;
TeeOutputStream brancher = TeeOutputStream(fos, System.out);
cplex.setOut(brancher);

答案 1 :(得分:3)

编写自己的OutputStream实现,该实现将对write方法的调用委托给两个包装的OutputStream,一个用于控制台,一个用于文件。

答案 2 :(得分:2)

答案 3 :(得分:0)

易:

cplex.setOut(new OutputStream() {

    public void write(int b) throws IOException {
        outputStream1.write(b);
        outputStream2.write(b);
    }
});