import java . io .* ;
public class StandardIO
{
public static void main (String [ ] args) throws IOException
{
PrintStream console = System . out ;
// InputStream stdin = System .in ; // 为什么不需要恢复该对象
BufferedInputStream in = new BufferedInputStream (
new FileInputStream ("StandardIO.java")) ;
PrintStream out = new PrintStream (
new BufferedOutputStream (
new FileOutputStream ("test.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) ;
}
}
System.out을 복원하지 않고 어떤 일이 일어나는지 확인할 수도 있습니다.
이론적으로는 프로그램이 종료되어 복원 여부는 중요하지 않습니다.