本文最后更新于 1420 天前,其中的信息可能已经有所发展或是发生改变。
之前数据结构作业里遇到获取
System.out.print()
内容的需求找了好多只有这个可以用
完整通用代码
import java.io.ByteArrayOutputStream
import java.io.PrintStream
public class SystemOut{
public static void outTest{
ByteArrayOutputStream baoStream = new ByteArrayOutputStream(1024);
PrintStream cacheStream = new PrintStream(baoStream);//临时输出
PrintStream oldStream = System.out;//缓存系统输出
System.setOut(cacheStream);
System.out.print("...");//不会打印到控制台
String result = baoStream.toString();//存放控制台输出的字符串
System.setOut(oldStream);//还原到系统输出
System.out.println("result")
}
public static void main(String[] args){
outTest();
}
}
我自己的作业需求
要求是写一个图形界面
以下是图形界面的按钮1的事件监听
//按钮1事件监听,输出DLR算法遍历的序列
jb1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
ByteArrayOutputStream baoStream = new ByteArrayOutputStream(1024);
PrintStream cacheStream = new PrintStream(baoStream);//临时输出
PrintStream oldStream = System.out;//缓存系统输出
System.setOut(cacheStream);//不打印到控制台
bt.preRootTraverseL(T);//这一行是本要打印到控制台的内容
String result = baoStream.toString();
tf.setText("DLR算法遍历的序列:" + result);
}
});
其他只需要修改bt.preRootTraverseL(T);
这一行打印到控制台的内容即可