重定向标准流

http://www.java3z.com/cwbwebhome/article/article5a/532.html

    重定向标准流
       

             

    下载源代码

    〖 作者:站长整理 〗〖 大小:1k 〗〖 发布日期:2005-08-04 〗〖 浏览:145 〗

     import java.io.*;


    public class Redirect
    {
        public static void main (String args[])
        {
    InputStream origIn = System.in;
    PrintStream origOut = System.out;
    PrintStream origErr = System.err;

    InputStream stdin = null;
    try
        {
        stdin = new FileInputStream ("Redirect.in");
        }
    catch (Exception e)
        {
        System.exit (1);
        }    
    // Create a new output stream for the standard output.
    PrintStream stdout = null;
    try
        {
        stdout = new PrintStream (
    new FileOutputStream ("Redirect.out"));
        }
    catch (Exception e)
        {
        // Sigh.  Couldn't open the file.
        System.exit (1);
        }

    // Create new output stream for the standard error output.
    PrintStream stderr = null;
    try
        {
        stderr = new PrintStream (
    new FileOutputStream ("Redirect.err"));
        }
    catch (Exception e)
        {
        // Sigh.  Couldn't open the file.
        System.exit (1);
        }

            origOut.println ("\n11111111");
            System.out.println ("22222222222222");
            origOut.println ("333333");
            System.err.println ("4444444444444444444");
            origErr.println ("55555555555555");

    // Set the System out and err streams to use our replacements.
    System.setIn ( stdin );//重定向标准输入流
    System.setOut ( stdout );//重定向标准输出流
    System.setErr ( stderr );//重定向错误流

            origOut.println ("\666666666666666666");
            System.out.println ("aaaaaaaaaaaaaa");
            origOut.println ("777777777777");
            System.err.println ("bbbbbbbbbbbbb");
            origErr.println ("99999999999999999999999");

    // Read some input and dump it to the console.
            origOut.println ("\n11111111111111111111111");
    int inChar = 0;
    while (-1 != inChar)
        {
        try
    {
    inChar = System.in.read();
    }
        catch (Exception e)
    {
    // Clean up the output and bail.
    origOut.print ("\n");
    break;
    }
        origOut.write (inChar);
        }

    // Close the streams.
    try
        {
        stdin.close ();
        stdout.close ();
        stderr.close ();
        }
    catch (Exception e)
        {
        origOut.println ("Redirect:  Unable to close files!");
        System.exit (1);
        }

    System.exit (0);
        }
    }

原文地址:https://www.cnblogs.com/lexus/p/2359604.html