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 @   xjw12345  阅读(117)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示