【Java】Input,Output,Stream I/O流 03 系统标准流 & 打印流

Standard Input,Output Stream 标准输入输出流

- System.in 系统标准输入流

所属InputStream  Scanner(System.in);

默认从键盘获取输入信息

- System.out 系统标准输出流

所属PrintStream,是OutputStream的子类,FilterOutputStream  System.out.println();

默认从控制台输出信息

 

- static void setInt(InputStream input) static void setOut(OutputStream output)   重新指定输入和输出的流

 

使用Scanner实现程序

    static void inputPractice(){
        // 使用Scanner实现
        Scanner input = new Scanner(System.in);
        String text = "null";
        while( !(text.equals("e") || text.equals("exit")) ){
            System.out.println("请输入字符串");
            text = input.nextLine();
            System.out.println(text.toUpperCase());
        }
     input.close(); }

 

用System.in实现

    static void inputPractice() throws Exception {
        // 使用System.in实现
        InputStreamReader inputStreamReader = new InputStreamReader(System.in);
        BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
        while( true ){
            System.out.println("请输入字符串");
            String text = bufferedReader.readLine();
            System.out.println(text.toUpperCase());
            if ("e".equalsIgnoreCase(text) || "exit".equalsIgnoreCase(text)){
                System.out.println("程序结束");
                break;
            }
        }
        bufferedReader.close();
    }

 

打印流

PrintStream PrintWriter

- 各种print() 和 println()重载 用于多种数据类型的输出

- PrintStream和PrintWriter 不抛异常,自带flush

- PrintStream打印所有都是以平台默认字符编码转换字节

写入字符非字节的情况使用PrintWriter

- System.out 返回的是PrintStream的实例

 

向指定文件输出数据

    static void printStream(String srcPath) throws Exception {
        OutputStream outputStream = new FileOutputStream( new File(srcPath) );
        PrintStream printStream = new PrintStream(outputStream,true);
        if ( printStream != null) System.setOut(printStream);

        for (int i = 0; i < 255; i++) {
            System.out.print((char)i + "\t");
            if ((i + 1) % 10 == 0) System.out.println();
        }
        printStream.close();
    }

 

数据流

DataInputStream

DataOutputStream

写入数据和读取数据

    static void printData() throws Exception {
        DataOutputStream dataOutputStream = new DataOutputStream(new FileOutputStream(new File("sample.txt")));

        dataOutputStream.writeUTF("阿伟输了!!!");
        dataOutputStream.flush();

        dataOutputStream.writeInt(1001);
        dataOutputStream.flush();

        dataOutputStream.writeBoolean(true);
        dataOutputStream.flush();

        dataOutputStream.close();
    }

    static void readData() throws Exception {
        DataInputStream dataInputStream = new DataInputStream(new FileInputStream(new File("sample.txt")));
        // 读取数据顺序,要按写入顺序保持一致
        String str = dataInputStream.readUTF();
        int i = dataInputStream.readInt();
        boolean b = dataInputStream.readBoolean();

        System.out.println(str);
        System.out.println(i);
        System.out.println(b);

        dataInputStream.close();
    }

 

posted @ 2020-04-22 14:52  emdzz  阅读(278)  评论(0编辑  收藏  举报