zoukankan      html  css  js  c++  java
  • 第15章-输入/输出 --- 重定向标准输入/输出


    第15章-输入/输出 --- 重定向标准输入/输出

      Java的标准输入/输出分别通过System.in和System.out来代表,在默认情况下它们分别代表键盘和显示器,当程序通过System.in来获取输入时,实际上是从键盘读取输入;当程序试图通过System.out执行输出时,程序总是输出到屏幕。

      在System类里提供了如下3个重定向标准输入/输出的方法:

        (1)static void setErr(PrintStream err):重定向"标准"错误输出流。

        (2)static void setIn(InputStream in):重定向"标准"输入流。

        (3)static void setOut(PrintStream out):重定向"标准"输出流。

      

      下面程序通过重定向标准输出流,将System.out的 输出重定向到文件输出,而不是在屏幕上输出。

    复制代码
    import java.io.FileOutputStream;
    import java.io.PrintStream;
    
    public class RedirectOut
    {
        public static void main(String[] args)
        {
            try
            {
                //一次性创建PrintStream输出流
                PrintStream ps = new PrintStream(new FileOutputStream("out.txt"));
                
                //将标准输出重定向到ps输出流
                System.setOut(ps);
                
                //向标准输出 输出一个字符串
                System.out.println("普通字符串");
                
                //向标准输出输出一个对象
                System.out.println(new RedirectOut());
            }
            catch(Exception e)
            {
                e.printStackTrace();
            }
        }
    }
    复制代码

     

     

     

     

     下面程序重定向标准输入,从而可以将System.in重定向到指定文件:

      

    复制代码
    import java.io.FileInputStream;
    import java.util.Scanner;
    
    public class RedirectIn
    {
        public static void main(String[] args)
        {
            try
            {
                FileInputStream fis = new FileInputStream("props.txt");
                
                //将标准输入重定向到fis输入流
                System.setIn(fis);
                
                //使用System.in创建Scanner对象,用户获取标准输入
                Scanner sc = new Scanner(System.in);
                
                //增加下面一行只把回车作为分隔符
                sc.useDelimiter("
    ");
                
                //判断是否还有下一个输入项
                while(sc.hasNext())
                {
                    //输出输入项
                    System.out.println(sc.next());
                }
            }
            catch(Exception e)
            {
                e.printStackTrace();
            }
        }
  • 相关阅读:
    2019年CSP-J初赛试题(普及组)试题详解
    开放课件
    猴子选大王 (约瑟夫问题)
    后缀表达式转中缀表达式
    JDBC的使用
    JDBC
    MySQL第五天
    MySQL第四天
    MySQL第三天
    MySQL第二天
  • 原文地址:https://www.cnblogs.com/baiduligang/p/4247453.html
Copyright © 2011-2022 走看看