0

我在使用 Java 时遇到了一些麻烦。我想要的非常简单,我正在为著名游戏 Minecraft 的 mod 开发一个插件,并且我需要能够解析通过 STOUT 的控制台输出的每一行。

我在互联网上环顾四周,但似乎找不到任何可以用来执行此操作的东西。我知道有些控制台输出是通过默认的 Logger,有些是通过 system.out。我有一个函数,parseConsole(String line)它将解析该行并在它包含一个单词等时执行某些操作。我希望为控制台上显示的每一行输出调用此函数,但它不能中断流程,就像在每个在我的函数解析后,行仍将发送到控制台。

4

1 回答 1

4

您可以使用System.setOut()替换控制台 PrintStream。您可以将其替换为在前往控制台的途中检查文本的实现。

这是您如何过滤的示例:

public class MyFilterPrintStream extends PrintStream {
  @Override public void print(String s) {
    // ... process output string here ...

    // pass along to actual console output
    super.print(s);
  }
}

// install my filter 
System.setOut(new MyFilterPrintStream(System.out));
于 2012-08-03T16:28:47.250 回答