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.ltesting.net