日期:2014-05-20  浏览次数:20681 次

关于I/O重定向的问题,大家帮帮我解答
有下列程序代码:
import   java.io.*;

public   class   Redirecting   {

public   static   void   main(String[]   args)
throws   IOException   {

PrintStream   console   =   System.out;
BufferedInputStream   in   =   new   BufferedInputStream   (
      new   FileInputStream   ( "Redirecting.java "));
PrintStream   out   =   new   PrintStream   (
      new   BufferedOutputStream   (
            new   FileOutputStream( "text.out ")));
System.setIn(in);
System.setOut(out);
System.setErr(out);
BufferedReader   br   =   new   BufferedReader   (
      new   InputStreamReader   (System.in));

String   s;
while((s   =   br.readLine())   !=   null)
      System.out.println(s);
out.close();
System.setOut(console);
}
}  
请问:
1)什么是标准I/O的重定向呢?有什么具体功能?为什么要重定向?
2)上面程序的功能是什么?
3)上面程序里那个:PrintStream   console   =   System.out;是什么意思       呢?

------解决方案--------------------
哦,就是把Redirecting.java文件里的内容定向输出到test.out里面去
PrintStream console = System.out;意味着将输出内容打印在控制台上

------解决方案--------------------
mark

------解决方案--------------------
所谓的I/O的重定向:举一个抽象的东西,比如一个箱子,2个孔,一个流入孔,一个流出孔

你可以用任何流体接入流入孔,也可以用任何 流出管道\容器 接入流出孔

上面的例子就是用缓冲文件流 接入System的这个流入孔,
System的流出孔用文件out.txt作为容器接入。
将Redirecting.java文件内容流完以后,用系统默认的流出管(console即控制台)接上System的流出孔
------解决方案--------------------
MARK