java的system.out输出保存到特定文件中

java的system.out输出保存到特定文件中

     String path = "G:/2/3/SystemOut.log"; 
     FileOutputStream puts = new FileOutputStream(path,true);
     PrintStream out = new PrintStream(puts);
     System.setOut(out);
     //之后的输出都是拼接在文件SystemOut.log中

原因:

1.System类中有一个方法setOut(PrintStream ps)用于控制输出流的

系统输出就按照ps流输出
java的system.out输出保存到特定文件中

2.PrintStream类控制输出位置:
多种构造方法:
java的system.out输出保存到特定文件中
2.1 ps = new PrintStream(pathfile);//输出保存到文件pathfile中(pathfile=路径+文件全程(包括后缀名))
该方法中System.setOut(ps)后输出每次线程重复一次就会覆盖一次,单线程会输出到同一个文件。(文件内容覆盖)
2.2 ps = new PrintStream(new FileOutputStream(pathfile,true));
该方法中System.setOut(ps)后输出都会追加到文件中,不会进行内容覆盖,只是进行内容追加。对此线程的输出也是追加。

new FileOutputStream(pathfile,true)//控制对文件内容是进行追加还是还是进行覆盖。
//true:追加;false:覆盖
java的system.out输出保存到特定文件中