OutputStreamWriter/ InputStreamReader close 问题

发现一个问题,

1.// Java 为什么必须先关闭OutputStreamWriter,后面 InputStreamReader才能读到数据?

//如果都放在末尾,读不到数据

2.在调用字符流写数据时并没有直接写入

写完调用osw.flush()了之后;文件才刷新;
package com.demo5;

import java.io.*;
import java.util.Arrays;

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


        OutputStreamWriter osw =new OutputStreamWriter(new FileOutputStream("idea_demo1\\写数据.txt"),"GBK");//文件输入流

        osw.write("中国");

        //osw.close();// 先close OutputStreamWriter 后面才能读到数据

        InputStreamReader isr = new InputStreamReader(new FileInputStream("idea_demo1\\写数据.txt"),"GBK");
        BufferedReader br = new BufferedReader(isr);
        //读取两种方式 一次读一个字符 ,或一次对一个字符数组

        int ch;
        while ((ch = isr.read())!= -1){
            System.out.print((char) ch);
        }

        osw.close();//放在末尾,InputStreamReader 读不到数据
        isr.close();

    }
}

你可能感兴趣的:(笔记,java)