我正在应用程序中创建文件,并且继续在该文件中写入一些内容。

但是,在我的文件达到某个大小(比如说100行)之后,我要擦除第一行并将新行写到底部。

要求是我的文件应受到限制,但应保留我已写入文件的最新内容。

请让我知道它是否可以在Java中使用?如果有其他选择,请告诉我。

最佳答案



这不可能以简单的方式完成。您只能截断文件的最后一部分。 (这是来自底层文件系统的继承限制,并且由于与为什么不能在文件中间插入字节的原因相同)。

您可以通过以下方式手动进行操作:

  • 找出第一行的字节长度n
  • 对于i = n ... length of file
  • 将pos i处的字节写入pos i - n
  • 将文件截断为length of file - n长度。



  • 我建议您使用循环缓冲区或类似的方法解决它。尽管如此,如果不是所有行都一样长,就会遇到麻烦,除非您将缓冲区保留在内存中,然后将其转储到(已清除的)文件中。

    10-04 23:05
    查看更多