java - 在java中删除数据文件的部分内容

标签 java file-io

我有一个文件,里面写了一些java对象。写入后,有时我需要删除放置在文件中随机位置的一些对象。有没有办法从文件中删除选定的对象而不替换整个文件?

谢谢。

最佳答案

不,这从根本上来说是大多数文件系统不支持的。 (可能有一些具有特殊的数据结构以使其便宜,但大多数没有 - 并且标准 API 不支持这个想法。)

“删除”文件部分的最简单方法是将所需的部分复制到新文件中。如果您仅删除接近末尾的位,则可能会避免再次复制它的开头,但这将需要更复杂的代码。

对于对象流,您可能最好只从一个流中读取对象,然后将您仍然需要的对象写入新的流中。 (显然,您可以稍后重命名输出文件。)通过自己查看序列化格式,您可能可以避免重复反序列化/序列化所需的一些处理,但我会选择简单的路线开始。

关于java - 在java中删除数据文件的部分内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3174201/

相关文章:

c - 将文件中特定点的数字存储为 (x, y) 坐标

java - 在 InputStreamEntity 中设置 HTTP header

java - 即使存在 throws 语句,也会收到 FileNotFoundException

java - RecyclerView 从另一个类中删除一个项目

java - 使用方法在 ArrayList 中循环

.net - Encoding.Default与File.ReadAllText中的无编码不同吗?

java - 如何高效地实现Eratosphenes方法来生成素数?

asp.net-mvc - 文件是在给定上下文中无效的方法

java - java 字符串方法赋值

使用 C 将文件从一个目录复制到另一个目录。在发送目录中打开文件时出现问题。没有这样的文件或目录