监听器阻止System.out显示在屏幕上

har*_*hit 4 java

我正在做我的学术项目,在构建和测试时,我已经放了许多println()语句.

但是,当我不得不提交所有打印时,不应该显示.

我可以实现像侦听器这样的东西,当试图执行System.out时会调用它并阻止它显示.我不知道这个想法有多可行,但只是想知道它是否可能.我知道我本来可以使用日志文件或写入文件但是如果我必须禁用SOP,我只能想到一个想法我怎么能这样做..

谢谢

eke*_*ren 9

使用System.setOut函数(和setErr)以下程序只打印1 :(而不是2)

public static void main(String[] args) throws FileNotFoundException {
    System.out.println("1");
    System.setOut(new PrintStream(new OutputStream() {
        @Override
        public void write(int arg0) throws IOException {
            // TODO Auto-generated method stub

        }
    }));
    System.out.println("2");
}
Run Code Online (Sandbox Code Playgroud)


Uri*_*Uri 7

正确的做法是在printlns之前使用标志,或者更好的是,使用Logger(有许多版本可用).

但是,可以将所有System.out重新路由.搜索"redirect system.out",你会发现很多例子.