我正在帮助一位朋友编写一些Java代码,他们对Java没有多少了解。所以我给他写了一些辅助功能,以便轻松完成他眼中有点古怪的事情。其中之一是一个函数,它将字符串写入OutputStream
。看看:System.out已关闭?我可以重新打开它吗?
public void write(String txt, OutputStream out) {
PrintWriter printer = new PrintWriter(out);
printer.print(txt);
printer.close();
}
现在,你可以很容易地用不同的方式写你想要的地方。例如,你可以这样做:
(new StreamHelper()).write("Hello Test", System.out);
这样做,我发现了这事后System.out.println()
不写什么壳了。所以我认为可能printer.close()
也自动关闭了System.out
,我想知道如何重新激活它,以便我可以在此功能再次完成后使用它。
我的假设是否正确? (我怎么能在这里没有问到这个问题呢?)
如何在write()
函数调用后继续使用System.out
?
有没有更好的方法来编写这样一个辅助函数?
我相信,你可以使用'flush'而不是'close()'。 –
您可以使用'write'方法'static'来避免丑陋的'(新的StreamHelper())。write(...)'调用。 – adarshr
@Stas Kurilin:我试过了,它工作。 – erikbwork