隐藏System.out.print类的调用

K2x*_*2xL 19 java

我正在使用java库(jar文件).该文件的作者放入了一堆System.out.printSystem.out.printlns.有没有办法隐藏特定对象的这些消息?

*编辑:看起来jar文件似乎创建了一堆线程,每个线程都有自己的System.out.println ...

Ker*_*ğan 41

使用Dummy更改原始PrintStream,它对方法没有任何作用.write()

完成后不要忘记替换原始的PrintStream.

System.out.println("NOW YOU CAN SEE ME");

PrintStream originalStream = System.out;

PrintStream dummyStream = new PrintStream(new OutputStream(){
    public void write(int b) {
        // NO-OP
    }
});

System.setOut(dummyStream);
System.out.println("NOW YOU CAN NOT");

System.setOut(originalStream);
System.out.println("NOW YOU CAN SEE ME AGAIN");
Run Code Online (Sandbox Code Playgroud)

  • @ K2xL在这种情况下一直使用**`dummyStream`**.当你需要打印一些东西到控制台时使用**`originalStream`**. (4认同)
  • 感谢快速回答,但这不会隐藏所有system.outs吗?我想保留我的程序中的那些,但隐藏jar创建的那些. (2认同)

Gra*_*bot 6

System.setOut(); 可能就是你要找的东西

System.setOut(new PrintStream(new OutputStream() {
  public void write(int b) {
    // NO-OP
  }
}));
Run Code Online (Sandbox Code Playgroud)

资源