【问题标题】:Write to Random Access File in Java without overwriting [duplicate]在Java中写入随机访问文件而不覆盖[重复]
【发布时间】:2015-05-19 13:02:33
【问题描述】:

在随机存取文件中,在特定字节位置,要插入的新文本被覆盖。如何修改write 方法,以便在现有值之间插入新文本而不覆盖?

我知道可以转换,但我知道逻辑如何。请帮我解释一下逻辑

【问题讨论】:

    标签: java randomaccessfile


    【解决方案1】:

    你不能。这不是随机访问文件的工作方式。这不是文件一般的工作方式。

    如果你想在文件中插入字符,你需要重写文件。安全的方法是编写一个带有临时名称的新文件,其中包含更新的内容,然后删除旧文件并重命名临时文件。


    我知道可以转换,但我知道逻辑如何。

    首先,“移位”涉及覆盖插入点之后的字符。

    其次,“换档”是一种危险的操作。如果应用程序被中断,或者系统发生故障/在您进行“移位”操作时断电,您很可能会损坏文件。

    【讨论】:

      【解决方案2】:

      这与 C 中的答案相同:您不能,文件系统不允许这样做。 看: C function to insert text at particular location in file without over-writing the existing text

      【讨论】:

        猜你喜欢
        • 2012-04-15
        • 1970-01-01
        • 2023-03-28
        • 1970-01-01
        • 2018-03-26
        • 2013-12-14
        • 2011-05-08
        • 2013-11-04
        • 2012-06-18
        相关资源
        最近更新 更多