从txt文件java中删除一行

从txt文件java中删除一行,第1张

从txt文件java中删除一行

有什么方法可以做到而无需打开新文件并复制整个文本?

不,没有。当然,如果您想 安全地 做的话就没有。

而且

RandomAccessFile
也不会真正帮助您。它可以让您用相等数量的字节替换文件中的字节序列,但这并不意味着删除一行。

您可以这样使用RAF:

给定初始状态

L1L2L3...LN
替换
L2L3...LN
L3...LN

或者您也可以按照@halfbit的回答,使用RAF一次“滑行”一行。

然而:

  • 在最坏的情况下,您将复制整个文件内容,通常情况下涉及读取和写入行字节

    O(N)

  • 执行此 *** 作的简单方法需要

    O(N)
    在内存中保留行。

  • “滑动”方法需要

    O(N)
    I / O *** 作(即系统调用)。

  • 最重要的是: 通过就地文件更新删除行是有风险的。如果应用程序在过程中被中断(例如,电源故障),那么您将得到一个损坏的文件。

FWIW:这是不是在Java中的限制 本身 。而是它限制了现代 *** 作系统表示/模型文件的方式。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5139574.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存