【发布时间】:2015-12-02 23:54:51
【问题描述】:
有没有办法在多线程时将整个控制台输出保存到文件中?我正在使用 5 个线程。我有一个想法,我可以在运行方法中放置一个打印流。
示例:
public void run() {
try{
PrintStream out = new PrintStream(file);
stopExecute stop = new stopExecute();
Thread t = new Thread(stop);
Scanner in = new Scanner(System.in);
t.start();
while (!in.hasNextLine())
{
classThatUsingMultipleThrads();
System.out.println("Finished");
anotherClassThatUsingThreads();
System.out.println("Finished");
}
System.out.prinln("User stopped the execution");
stop.keepRunning = false;
System.setOut(out);
}
catch(IOException e){System.out.println(e);}
这里的问题是它只保存输出“用户停止执行”,而 whileloop 中的所有内容都没有保存。或其他类的输出流。
我试着把
System.setOut(out);
在while循环中,但没有帮助。
编辑:拼写更正
【问题讨论】:
-
“完成”,而不是“完成” :) 哦。并且“停止”而不是“停止”。
-
使用 Log4J 之类的日志框架会帮助您解决问题吗?
-
@C-Otto 谢谢指正,我每天都在学习新东西:)
标签: java multithreading file