public class ThreadTest {
public static void main(String[] args)throws Exception{
//输出重定向!
PrintStream console = System.out;
//输出的文件位置
PrintStream out = new PrintStream(new BufferedOutputStream(new FileOutputStream("test.java")));
System.setOut(out);
System.setErr(out);
//输入重定向
BufferedInputStream in = new BufferedInputStream(new FileInputStream("Redirecting.java"));
System.setIn(in);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s;
while((s = br.readLine())!=null)
System.out.println(s);
//关闭重定向!
out.close();
System.setOut(console);
}
}
重定向只能对字节流操作,带缓冲区的字节流保证不丢失数据:在close之前将未进入的数据都写入或者读出,如果不用buffer则可能close时丢失未读完或者写完的数据。