【发布时间】:2009-12-31 19:01:31
【问题描述】:
我想用java读取一个文件。然后,我想从该文件中删除一行而不重写该文件。
我该怎么做?
有人建议我在 RandomAccessFile 的帮助下读取/写入文件而不重写文件。 How to write data to a file through java?
具体来说,该文件包含行。一行包含三个字段 - id、姓名和职业 - 由 \t 分隔。我想通过 Reader 或 InputStream 或任何其他方式读取该文件,然后搜索具有指定关键字(例如 121)的行,然后想要删除整行。
此操作需要在不重写整个文件的情况下执行
【问题讨论】:
-
RandomAccessFile不允许您在文件流中间插入字节;它只是 覆盖 个字节。这就是它不需要重写文件的原因。如果要在文件中间插入或删除内容,则需要将其他所有内容移过来以腾出空间。 -
...如果您要删除第一行,这意味着您实际上是在重写整个文件。此外,当您完成轮班后,如何处理文件末尾不再需要的数据?好问题。