public class RedirectOutputStream {
public static void main(String[] args) {
try {
PrintStream out = System.out; //保存原输出流
PrintStream ps = new PrintStream("/log.txt"); //创建文件输出流
System.setOut(ps); //设置使用新的输出流
int age = 18; //定义整形变量
System.out.println("年龄变量成功定义,初始值为18");
String sex = "女"; //定义字符串变量
System.out.println("性别变量成功定义,初始值为女");
//整合两个变量
String info = "这是个"+sex+"孩子,应该有"+age+"岁了。";
System.out.println("整合两个变量为info字符串变量,其结果是:"+info);
System.setOut(out); //恢复原有输出流
System.out.println("程序运行完毕,请查看日志文件。");
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
*本例中的system类的setout()方法改变了输出流
*system类的out、err和in成员变量是final类型的,不能直接赋值,要通过相应的方法来改变流
*1、setout()方法
*该方法用于重新分配system类的标准输出流,public static void setOut(PrintStream out)
*参数说明
*out:新的PrintStream输出流对象
*2、setErr()方法
*该方法将重新分配system类的标准错误输出流 public static void setIn(InputStream in)
*参数说明
*in:新的InputStream输入流对象
*/