gpt4 book ai didi

java - 如何从随机访问文件中删除特定行

转载 作者:行者123 更新时间:2023-11-30 01:40:00 26 4
gpt4 key购买 nike

我正在使用一个随机访问文件,其中我想删除满足某些条件的行,例如我是否有记录

MCA 30

MBA 20

BCA 10

现在我的要求是,如果我进入MBA,那么第二行要删除。

最佳答案

一般来说,从文件中间删除一个项目意味着重写该条目之后的所有条目,以便使用该项目占用的空间。

有些东西会用一些无效值标记已删除的项目,以便发现该插槽未被使用。通常,他们甚至不会重用已删除的槽,因为这比您想象的要更多的管理,并且基本上是在文件中实现类似堆的架构。他们需要一个单独的“压缩”步骤来消除这个死角。 Microsoft Jet(如 Access)的工作原理如下。

有一个非常酷的优化适用于某些情况:

如果行无序且长度相等,您可以用最后一个条目覆盖要“删除”的条目,然后截断文件。

如果行无序但长度不固定,您可以使用此方法的更复杂的变体,其中您从末尾移动一些与要删除的项目长度相同的条目,以便只需要进行洗牌尽可能少的条目。

关于java - 如何从随机访问文件中删除特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/934458/

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