从System.out分离Writer而不关闭

时间:2014-12-15 15:23:46

标签: java io

我使用Writer作为输出的一些工具。我想写信给System.out,因此我为OutputStreamWriter创建了System.out。我的问题是,在完成此任务后,我想用程序的标准输出做其他事情。我没有找到任何方法来分离作家。

是否有任何常见的Writer实现可以做到这一点?我应该自己编写Writer吗?我应该在flush()上拨打OutputStreamWriter然后泄漏吗?

2 个答案:

答案 0 :(得分:1)

是的,只需.flush()即可。它并不意味着你“泄漏”它:Writer对象将被垃圾收集,并且底层流仍在使用中。没错。

答案 1 :(得分:1)

您可以改为关闭和刷新:

    PrintWriter w = new PrintWriter(System.out) {
        @Override
        public void close() {
            flush();
        }
    };