0

我正在编写一个程序,它使用 jtidy 从从 URL 获得的源代码中清理 html。我想在 GUI 中的 JTextArea 中显示错误和警告。我将如何将警告从打印到标准输出“重新路由”到 JTextArea?我查看了 Jtidy API 并没有看到任何我想要的东西。任何人都知道我该怎么做,或者甚至可能吗?

// 测试 jtidy 选项

public void test(String U) throws MalformedURLException, IOException
{
    Tidy tidy = new Tidy();
    InputStream URLInputStream = new URL(U).openStream();
    File file = new File("test.html");
    FileOutputStream fop = new FileOutputStream(file);

    tidy.setShowWarnings(true);
    tidy.setShowErrors(0);
    tidy.setSmartIndent(true);
    tidy.setMakeClean(true);
    tidy.setXHTML(true);
    Document doc = tidy.parseDOM(URLInputStream, fop);
}
4

1 回答 1

1

假设 JTidy 将错误和警告打印到标准输出,您可以暂时更改System.out调用的位置:

PrintStream originalOut = System.out;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream myOutputStream = new PrintStream(baos);
System.setOut(myOutputStream);

// your JTidy code here

String capturedOutput = new String(baos.toByteArray(), StandardCharsets.UTF_8);
System.setOut(originalOut);

// Send capturedOutput to a JTextArea
myTextArea.append(capturedOutput);

如果您也需要这样做,则有一种类似的方法System.err

于 2012-11-08T04:36:22.043 回答