J2SE綜合:在Java程序中截獲控制臺輸出 (3)
關鍵字: Java 程序中截獲控制臺輸出二、捕獲Java控制臺輸出 Listing5的ConsoleTextArea類擴展SwingJTextArea捕獲控制臺輸出。不要對這個類有這么多代碼感到驚訝,必須指出的是,ConsoleTextArea類有超過50%的代碼用來進行 測試 。 【Listing5:截獲Java控制
關鍵字:
Java程序中截獲控制臺輸出二、捕獲Java控制臺輸出
Listing 5的ConsoleTextArea類擴展Swing JTextArea捕獲控制臺輸出。不要對這個類有這么多代碼感到驚訝,必須指出的是,ConsoleTextArea類有超過50%的代碼用來進行
測試。
【Listing 5:截獲Java控制臺輸出】
import
java.io.*;
import java.util.*;
import javax.swing.*;
import javax.swing.text.*;
public class ConsoleTextArea extends JTextArea {
public ConsoleTextArea(InputStream[] inStreams) {
for(int i = 0; i < inStreams.length; ++i)
startConsoleReaderThread(inStreams[i]);
} // ConsoleTextArea()
public ConsoleTextArea() throws IOException {
final LoopedStreams ls = new LoopedStreams();
// 重定向System.out和System.err
PrintStream ps = new PrintStream(ls.getOutputStream());
System.setOut(ps);
System.setErr(ps);
原文轉自:http://www.anti-gravitydesign.com