public class RedirctOutputStream { public static void main(String[] args){ try {//保留原输出流
PrintStream out=System.out;//创建文件输出流
PrintStream ps=new PrintStream("./log.txt");//设置新的输出流
System.setOut(ps);System.out.println("我是新的输出,输出到日志");//换回原来的输出流System.setOut(out);System.out.println("程序运行结束,请查看日志");}catch (FileNotFoundException e){e.printStackTrace();} }}
System类的out、err、in成员变量都是final类型的,不能直接复制,要通过setOut()、setErr(),setIn()方法来改变流。上例是通过setOut()方法改变输入流输入位置,将输出重定向到一个固定的目录,实现程序日志。