gpt4 book ai didi

Java FileOutputStream - 如何使文件大小立即显示在文件系统上

转载 作者:行者123 更新时间:2023-12-01 12:19:40 31 4
gpt4 key购买 nike

当我使用任何 OutputStream(特别是 FileOutputStream)写入文件时,如何使文件大小立即显示在系统上?假设我在 2 分钟内以 byte[] 的形式将 100MB 的数据写入文件,每个字节保存 10kB,我没有看到该文件在我的系统上增长(使用 dir 在 Windows 7 命令行中,但我怀疑这很重要)在程序运行时。在我终止进程或让它自行终止后,文件大小显示正确。我希望看到的是文件大小在执行过程中动态增长。这是文件系统问题还是 Java 问题?

最佳答案

这与您的程序无关,它完全由操作系统控制。

也许可以通过关闭并重新打开每个缓冲区上的文件来更接近,但这会显着减慢您的程序速度。但并不能保证 Windows 会以更快的速度关注。

考虑一下,在典型的操作系统中,每秒发生数千个事件,其中一些事件可以反射(reflect)在 GUI 或文件系统统计信息中。如果您要求对可见界面的所有更新都是实时发生的,那么操作系统将花费所有时间来更新内容,其中大部分内容您并不真正关心。

你的程序在它自己的进程中执行,操作系统有一堆线程监视具有 UI 可见属性的事物。这些监控进程会以很短的时间间隔唤醒,但不会像痴迷的青少年一样坐在那里等待电话。

如果您需要实时显示文件大小,您可能需要在程序中添加一个显示文件的窗口。这称为“进度条”或“进度显示”。

总之,操作系统永远不会为您提供即时的实时文件大小数字。如果您真的非常需要这个,您必须自己提供。

关于Java FileOutputStream - 如何使文件大小立即显示在文件系统上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26787105/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com