0

私はjtidyを使用してURLから取得したソースコードからhtmlをクリーンアップするプログラムを書いています。GUIのJTextAreaにエラーと警告を表示したい。警告を印刷からstdoutから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がエラーと警告をstdoutに出力すると仮定すると、呼び出しの場所を一時的に変更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 に答える