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) {
}
}
}