0

Javaで問題が発生しています。私が欲しいのは非常に単純です。私は有名なゲームのmod、Minecraftのプラグインを開発しています。そして、STOUTに到達するコンソール出力のすべての行を解析できる必要があります。

インターネットで調べてみましたが、これを行うために使用できるものが見つからないようです。一部のコンソール出力はデフォルトのロガーを介して行われ、一部は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 に答える