开发者社区> 问答> 正文

java FileOutputStream write 方法是否写入到磁盘中,而不是系统缓存?

如题,FileOutputStream类 write 不关闭在断电时是否会丢数据,请大佬解答

展开
收起
Unyielding 2019-07-21 11:06:04 7810 0
9 条回答
写回答
取消 提交回答
  • 开发

    是存在这种可能的,Java中的文件是先写在缓存中,最后在关闭时或者flush调用时,把缓存数据flush到硬盘。

    不关闭在断电时有可能会丢数据。

    2020-03-31 00:09:42
    赞同 展开评论 打赏
  • 没有flush的情况下,断电是会丢失数据的

    2020-03-29 13:21:23
    赞同 展开评论 打赏
  • FOS是JDK提供的文件操作库,楼主首先要了解JDK和磁盘之间隔了多少级,以linux系统为例,据我所知,中间至少有JDK-buffer、系统缓存、pagecache、块层,最后才到磁盘,所以楼主看看,只是write的话丢的可能性太大了啊

    2020-03-24 09:41:08
    赞同 展开评论 打赏
  • 需要write是写入到流,流是在内存 flush是刷到磁盘

    2020-03-19 15:51:52
    赞同 展开评论 打赏
  • 一定要 强制flush

    2020-03-05 18:00:32
    赞同 展开评论 打赏
  • 需要自己强制flush,否则有丢数据的可能

    2020-03-05 11:38:55
    赞同 展开评论 打赏
  • 有可能丢数据的,可以调用flush()方法去强制刷缓存到磁盘。

    2019-09-16 22:04:02
    赞同 展开评论 打赏
  • 热爱生活,热爱学习,热爱编程

    好像不调用关闭close()方法,会丢失一部分数据的

    2019-07-25 15:22:48
    赞同 展开评论 打赏
  • 我是一名普通的程序员,喜欢研究一些技术,大家多多捧场

    自己顶下

    2019-07-21 11:07:02
    赞同 展开评论 打赏
滑动查看更多
问答排行榜
最热
最新

相关电子书

更多
基于英特尔 SSD 的虚拟机缓存解决SSD 立即下载
用户态高速块缓存方案 立即下载
高性能Web架构之缓存体系 立即下载