Java 将控制台输出写入文件并同时写入控制台

Java 将控制台输出写入文件并同时写入控制台,java,stream,console,system,Java,Stream,Console,System,我想知道是否可以让java将所有控制台输出写入txt文件,而不必在控制台上禁用它 PrintStream o = new PrintStream(new File("A.txt")); PrintStream console = System.out; System.setOut(o); System.setOut(console); 所以我需要两个命令都被执行由于我的声誉,我无法发表评论。但下面的答案将解决您的问题:是时候使用日志库了?以log4j的问题为例,我每次都必须输入logger.i

我想知道是否可以让java将所有控制台输出写入txt文件,而不必在控制台上禁用它

PrintStream o = new PrintStream(new File("A.txt"));
PrintStream console = System.out;
System.setOut(o);
System.setOut(console);

所以我需要两个命令都被执行

由于我的声誉,我无法发表评论。但下面的答案将解决您的问题:

是时候使用日志库了?以log4j的问题为例,我每次都必须输入logger.info来记录,我只想像stream一样自动完成,因为我的程序太大了,这个问题在中得到了回答。除了使用这里提到的自定义
TeePrintStream
之外,您还可以使用apachecommons'。请记住,如果您由于某种原因无法访问该文件,您可能根本没有任何输出。