Java 重定向大量system.out.println';将s转换为.txt文件
可能重复:Java 重定向大量system.out.println';将s转换为.txt文件,java,file-io,println,printstream,Java,File Io,Println,Printstream,可能重复: 在Java程序中,我有一个很长的方法(我认为发布这个方法并不重要,因为它对问题并不重要),它有大量println语句将状态更新打印到控制台 我不想将这些打印输出到控制台,而是希望它们进入一个txt文件,在那里我可以存储它们并在以后查看它们 是否有一种简单的方法可以重定向输出,而不必手动遍历每个println语句 如果没有,最好的方法是什么 将额外参数添加到方法,PrintStream out 在方法中用out搜索并替换System.out 完成了 (使用围绕FileOutputSt
在Java程序中,我有一个很长的方法(我认为发布这个方法并不重要,因为它对问题并不重要),它有大量println语句将状态更新打印到控制台 我不想将这些打印输出到控制台,而是希望它们进入一个txt文件,在那里我可以存储它们并在以后查看它们 是否有一种简单的方法可以重定向输出,而不必手动遍历每个println语句 如果没有,最好的方法是什么
,PrintStream out
out
搜索并替换System.out
李>
我以前不得不这样做,它不是很整洁,我希望您不是为了最后一段代码而这样做,但我做到了:
PrintStream ps = new PrintStream("\file.txt");
PrintStream orig = System.out;
System.setOut(ps);
//TODO: stuff with System.out.println("some output");
System.setOut(orig);
ps.close();
系统类有一个静态方法,
System.setOut(PrintStream out)
。您所要做的就是创建自己的PrintStream,将其写入到文件中,然后将其填充到这个方法中,就一切就绪了
更好的不太脆弱的解决方案:不要使用System.out.printFoo(…),而只需使用记录器,并根据当时的用途更改日志记录级别。您当然可以重定向标准输出。查看中的系统设置(打印流输出)。PrintStream是您自己的一个输出到文件中的文件。@HovercraftFullOfEels这是一个完全可升级的答案:)@dasblinkenlight:我已经达到了我的最高投票接收限制,不管怎样,我100%确定这个问题是重复的,事实上已经被问过很多次了,但是我太懒了,找不到重复的。它能用。谢谢你的提示