java 标准流

标准输入流:  System.in   默认表示的是键盘录入

   标准输出流:  System.out  默认表示的是屏幕输出

 

Eg:

package june6D;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.PrintStream;

public class SyetemDemo {

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

        /**

         *  标准流: 标准输入流: System.in 默认表示的是键盘录入

标准输出流: System.out 默认表示的是屏幕输出

         *

         * 若现在我输出不想打印在屏幕上,怎么办?

         * 若现在我不想通过键盘来录入数据,有怎么办?

         *

         * 流的重定向: static void setOut(PrintStream out) 重新分配“标准”输出流。 static void

         * setIn(InputStream in) 重新分配“标准”输入流。

         */

        System.out.println("123456789");//最普通的打印

        System.err.println("123652");// 同样是一种输出流,打印出的是123652

        /**

         * static void setOut(PrintStream out) 重新分配“标准”输出流。

         */

       // 输出流就被重新定义到了文件,而不是屏幕

        System.setOut(new PrintStream("68Demo.txt"));// 只有在定义过后才生效,所以上面的还是会输出到控制台

        System.out.println("AAAA");

        System.out.println("BBBB");//就输出了在文件里

        int i = System.in.read();// 接受从键盘输入的数据,写在最前面(没有任何重新分配)才有效

        System.out.println("i所对应的是:" + (char) i);// 把它转换为字符型

        System.out.println(i);

        /**

         * 重新分配,由标准键盘输入变为由文件输入

         */

        System.setIn(new FileInputStream("copy6.4"));//备注:打印的是文件copy6.4中的数据,而且打印在文件68Demo.txt中。

        byte[] buff = new byte[1024];

        int len = 0;

        while ((len = System.in.read(buff)) != -1) {

            System.out.println(new String(buff, 0, len));// 此时不会打印在控制台上,因为上面已经重新定义了由打印到屏幕上转换为打印到文件里

        }

    }

}

原文地址:https://www.cnblogs.com/fanweisheng/p/11136247.html