JAVA_IO_打印流(八)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40646143/article/details/84333042

System

  • 该类继承自Object.

  • System类包含几个有用的类字段和方法。 它不能被实例化。

  • System类提供的System包括标准输入,标准输出和错误输出流; 访问外部定义的属性和环境变量; 一种加载文件和库的方法; 以及用于快速复制阵列的一部分的实用方法。

三个静态常量
static PrintStream err “标准”错误输出流
static InputStream in “标准”输入流。 
static PrintStream out “标准”输出流。  

下面来学习System几个常用的输入流与输出流

1),printStream 输出流

    //输出到文件
    public static void outFile() throws FileNotFoundException {
        PrintStream stream = new PrintStream(
                new BufferedOutputStream(
                        new FileOutputStream(
                                new File("C:/Users/晓电脑/Desktop/a.txt")
                        )
                )
        );

        stream.print("aakfdjwa");

        stream.close();
    }

运行如下

           

2),利用Scanner可以把文件内容输出到控制台

    //把文件内容输出到控制台
    public static void outConsole() throws FileNotFoundException {
        InputStream is;
        is = new BufferedInputStream(new FileInputStream(new File("C:/Users/晓电脑/Desktop/a.txt")));

        Scanner scanner = new Scanner(is);
        System.out.println(scanner.nextLine());


    }

运行如下

       

3),利用setOut  重新分配“标准”输出流。

    //把控制台的内容重定向到文件
    public static void redirectToFile() throws FileNotFoundException {
        String str = "hello word";
        System.setOut(
                new PrintStream(
                    new FileOutputStream(
                        new File("C:/Users/晓电脑/Desktop/a.txt")
                )));
        System.out.println(str);

         }
 

运行如下(控制台不会打印,而文件会显示)

文件如下

        

setOut俩次重定向 ,第一次先重定向到文件,然后再从文件重定向到控制台

    public static void rediectToConsole() throws FileNotFoundException {
        String str = "hello word";
        //重定向到文件
        System.setOut(
                new PrintStream(
                        new FileOutputStream(
                                new File("C:/Users/晓电脑/Desktop/a.txt")
                        )));
        System.out.println(str);
        //重定向到控制台
        //FileDescriptor.out 代表的就是控制台
        //true 相当于flush
      System.setOut(new PrintStream(
              new BufferedOutputStream(
                      new FileOutputStream(FileDescriptor.out)
              ),true
      )
      );

        System.out.println("你好啊 又回来了");
    }

运行如下

控制台

文件

                   

猜你喜欢

转载自blog.csdn.net/qq_40646143/article/details/84333042