永发信息网

JAVA lO流 close方法不是会自动调用flush方法吗,为什么还要手动调用一次呢?

答案:2  悬赏:20  手机版
解决时间 2021-04-05 08:22
  • 提问者网友:欲劫无渡
  • 2021-04-04 22:37
JAVA lO流 close方法不是会自动调用flush方法吗,为什么还要手动调用一次呢?
最佳答案
  • 五星知识达人网友:十年萤火照君眠
  • 2021-04-04 23:12
flush实际上就是将所有的写入的流,一次性输出到文件中,之后进行关闭即可。如果没关闭流,也没进行flush,此时的内容并未写入到文件的。
可以通过“FileOutputStream”创建文件实例,之后过“OutputStreamWriter”流的形式进行存储,举例:
OutputStreamWriter pw = null;//定义一个流
pw = new OutputStreamWriter(new FileOutputStream("D:/test.txt"),"GBK");//确认流的输出文件和编码格式,此过程创建了“test.txt”实例
pw.write("我是要写入到记事本文件的内容");//将要写入文件的内容,可以多次write
pw.write("我是要写入到记事本文件的内容");//将要写入文件的内容,可以多次write
pw.flush();
pw.close();//关闭流
备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。
全部回答
  • 1楼网友:夜风逐马
  • 2021-04-05 00:14
有些stream类会自动调用flush,而有些不会。 自己实现的stream接口也不一定会调用flush。 那些从设备接口传进来的outputstream,也没法知道具体怎么实现的。 不确定的情况,为了保险就调用一次flush再close。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯