gpt4 book ai didi

java - 如果我在 Java 中截断文件, "removed"字节会发生什么?

转载 作者:行者123 更新时间:2023-12-02 02:14:49 25 4
gpt4 key购买 nike

假设我有一个大小为 1mb 的文件。现在我做以下事情:

FileOutputStream fos = new FileOutputStream(file);
fos.write(new byte[0]);
fos.close();

当我将空字节数组写入文件时,“删除”的字节会发生什么?它们仍然存在于文件系统中吗?它们是否仍然以某种方式连接到文件(例如标记)?这与仅仅删除文件有什么区别吗?

谢谢。

最佳答案

从 Java 的角度来看,写入调用之前文件中的数据已经消失了。在大多数操作系统上,调用此写入方法实际上会导致文件打开以进行写入,这反过来(如果文件已经存在)会截断文件。至于底层存储本身,这会将存储 block (扇区、簇、扩展...)与文件本身分离,将它们标记为空闲。在传统的硬盘驱动器上,数据本身可能是可恢复的,但在基于闪存的存储上,被标记为空闲的 block 的信息实际上也被传递到芯片(TRIM),并且数据几乎永远消失了。

关于java - 如果我在 Java 中截断文件, "removed"字节会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49458858/

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