我正在应用程序中创建文件,并且继续在该文件中写入一些内容。
但是,在我的文件达到某个大小(比如说100行)之后,我要擦除第一行并将新行写到底部。
要求是我的文件应受到限制,但应保留我已写入文件的最新内容。
请让我知道它是否可以在Java中使用?如果有其他选择,请告诉我。
最佳答案
这不可能以简单的方式完成。您只能截断文件的最后一部分。 (这是来自底层文件系统的继承限制,并且由于与为什么不能在文件中间插入字节的原因相同)。
您可以通过以下方式手动进行操作:
n
。 i = n ... length of file
i
处的字节写入pos i - n
length of file - n
长度。 我建议您使用循环缓冲区或类似的方法解决它。尽管如此,如果不是所有行都一样长,就会遇到麻烦,除非您将缓冲区保留在内存中,然后将其转储到(已清除的)文件中。