1. import java.io.BufferedInputStream;
    2. import java.io.File;
    3. import java.io.FileInputStream;
    4. import java.io.FileNotFoundException;
    5. import java.io.FilterInputStream;
    6. import java.io.IOException;
    7. import java.io.InputStream;
    8. import java.io.PrintStream;
    9. import java.util.Scanner;
    10. public class RedirectOutputStream {
    11. public static void main(String[] args) {
    12. outToFile();
    13. readdile();
    14. }
    15. static void outToFile() {
    16. try {
    17. PrintStream out = System.out;// 保存原输出流
    18. PrintStream ps = new PrintStream("./log.txt");// 创建文件输出流
    19. System.setOut(ps);// 设置使用新的输出流
    20. int age = 18;// 定义整形变量
    21. System.out.println("年龄变量成功定义,初始值为18");
    22. String sex = "女";// 定义字符串变量
    23. System.out.println("性别变量成功定义,初始值为女");
    24. // 整合两个变量
    25. String info = "这是个" + sex + "孩子,应该有" + age + "岁了。";
    26. System.out.println("整合两个变量为info字符串变量,其结果是:" + info);
    27. System.setOut(out);// 恢复原有输出流
    28. } catch (FileNotFoundException e) {
    29. e.printStackTrace();
    30. }
    31. try {
    32. PrintStream out = System.out;// 保存原输出流
    33. PrintStream ps = new PrintStream("./log2.doc");
    34. System.setOut(ps);
    35. int age = 20;
    36. String sex = "kk";
    37. String info = "这是个" + sex + "孩子,应该有" + age + "岁了。";
    38. System.out.println(info);
    39. System.setOut(out);// 恢复原有输出流
    40. System.out.println("已经添加第一句");
    41. System.setOut(ps);
    42. System.setErr(ps);
    43. System.err.print("错误: 错误语句");
    44. System.out.println("输出语句");
    45. } catch (Exception e) {
    46. }
    47. }
    48. static void readdile() {
    49. try {
    50. // 保存原输入流
    51. InputStream input = System.in;
    52. // 设置自己的输入流
    53. InputStream ins = new FileInputStream("./log2.txt");
    54. // 设置为我定义的输入流
    55. System.setIn(ins);
    56. Scanner sc = new Scanner(System.in);
    57. while (sc.hasNext()) {
    58. System.out.println(sc.nextLine());
    59. }
    60. // 设置为原输入流
    61. System.setIn(input);
    62. } catch (Exception e) {
    63. }
    64. }
    65. }