flush方法和close方法的区别以及字符输出流写数据的其他方法

flush方法和close方法的区别

  flush:刷新缓冲区,流对象可以继续使用

  close: 先刷新缓冲区,然后通知系统释放资源。流对象不可以再被使用了。

    public static void main(String[] args) throws IOException {
        //1.创建FileWriter对象,构造方法中绑定要写入数据的目的地
        FileWriter fw = new FileWriter("d.txt");
        //2.使用FileWriter中的方法write方法,把数据写入到内存缓冲区中(字符转换为字节的过程)
        //void write(int c) 写入单个字符
        fw.write(97);
        //3.使用FileWriter中的方法flush,把内存缓冲区中的数据刷新到文件中
        fw.flush();
        //刷新之后流可以继续使用
        fw.write(98);
       //4.释放资源(会先把内存缓冲区中的数据刷新到文件中)
        fw.close();
        //close方法关闭之后流已经关闭了,已经从内存中消失了,流就不能再使用了
        fw.write(99);//Exception in thread "main" java.io.IOException: Stream closed
    }

文件中的内容:
  

 

 

 

 

 

字符输出流写数据的其他方法

  void write(char[] cbuf) 写入字符数组

  abstract void write(char[] cubf,int of ,int len) 写入字符数组的某一部分,off数组开始索引,len写的字符个数

  void write(String str) 写入字符串

  void write(String str,int off,int len) 写入字符串的某一部分,off字符串开始索引,len写的字符个数

    public static void main(String[] args) throws IOException {
        FileWriter fw = new FileWriter("d.txt");
        char[] chars = {'a','b','c','d','e'};
        //void write(char[] cbuf) 写入字符数组
        fw.write(chars);
        //abstract void write(char[] cubf,int of ,int len) 写入字符数组的某一部分,off数组开始索引,len写的字符个数
        fw.write(chars,1,3);
        //void write(String str) 写入字符串
        fw.write("你好你好");
        //void write(String str,int off,int len) 写入字符串的某一部分,off字符串开始索引,len写的字符个数
        fw.write("你好你好你好",1,3);
        fw.close();
    }

文件中的内容:

 

 

posted @ 2022-07-14 11:14  xjw12345  阅读(137)  评论(0)    收藏  举报