Oak*_*Oak 12 java output-redirect printstream
我正在使用一个任性的库,不幸的是,它会System.out(或偶尔System.err)打印信息.防止这种情况最简单的方法是什么?
我一直在考虑创建一个输出流到内存,替换,System.out并err在每次调用其中一个故障排除方法之前,稍后恢复它们,然后忽略创建的流的缓冲区.有更简单,更优雅的方式吗?
编辑:我不想重定向所有输出 - 这很容易实现.我只想忽略某些库调用可能产生的输出.
Oak*_*Oak 16
我最终做了类似的事情:
PrintStream out = System.out;
System.setOut(new PrintStream(new OutputStream() {
@Override public void write(int b) throws IOException {}
}));
try {
<library call>
} finally {
System.setOut(out);
}
Run Code Online (Sandbox Code Playgroud)
感谢AlexR和堆叠器将我重定向到这个简短的解决方案.