1

我需要将Getopt类错误消息存储到字符串中。

通常,该错误将在标准错误控制台中打印。

我该怎么做?

4

1 回答 1

1

您也许可以使用System.setOut和/或System.setErr.

举个例子:

static void printMessage()
{
  System.out.println("Hello");
}

public static void main(String[] args) throws Exception
{
  // ByteArrayOutputStream = in-memory output stream
  OutputStream output = new ByteArrayOutputStream();
  PrintStream oldStream = System.out; // store the current output stream
  System.setOut(new PrintStream(output)); // change the output stream
  printMessage(); // call function that prints to System.out
  System.setOut(oldStream); // restore the old output stream
  System.out.println("Output from stream: " + output.toString());
}

以上将仅导致以下输出:

Output from stream: Hello
于 2013-09-26T08:52:48.337 回答