import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FilterInputStream;import java.io.IOException;import java.io.InputStream;import java.io.PrintStream;import java.util.Scanner;public class RedirectOutputStream { public static void main(String[] args) { outToFile(); readdile(); } static void outToFile() { 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);// 恢复原有输出流 } catch (FileNotFoundException e) { e.printStackTrace(); } try { PrintStream out = System.out;// 保存原输出流 PrintStream ps = new PrintStream("./log2.doc"); System.setOut(ps); int age = 20; String sex = "kk"; String info = "这是个" + sex + "孩子,应该有" + age + "岁了。"; System.out.println(info); System.setOut(out);// 恢复原有输出流 System.out.println("已经添加第一句"); System.setOut(ps); System.setErr(ps); System.err.print("错误: 错误语句"); System.out.println("输出语句"); } catch (Exception e) { } } static void readdile() { try { // 保存原输入流 InputStream input = System.in; // 设置自己的输入流 InputStream ins = new FileInputStream("./log2.txt"); // 设置为我定义的输入流 System.setIn(ins); Scanner sc = new Scanner(System.in); while (sc.hasNext()) { System.out.println(sc.nextLine()); } // 设置为原输入流 System.setIn(input); } catch (Exception e) { } }}