java - 如何删除存储在 Java FileOutputStream 上的单个对象

标签 java java-io

我使用此代码将对象存储到文件中:

try{  
      FileOutputStream saveFile=new FileOutputStream("SaveObj.sav");


      ObjectOutputStream save = new ObjectOutputStream(saveFile);

      save.writeObject(x);

      save.close();
    }
    catch(Exception exc){
      exc.printStackTrace();
    }
  }
}

如何删除单个Object? 如何清除文件?

最佳答案

嗯,清空文件非常容易——只需打开它进行写入,然后再次关闭它:

new FileOutputStream("SaveObj.sav").close();

这会将其清空。但是,如果您试图从多个对象中删除一个对象,那就要复杂得多。您要么必须读入所有对象并只写出您想要保留的对象,要么必须保留每个对象开始的文件偏移量的索引(可能在单独的文件中)。您应该考虑使用对象数据库。

关于java - 如何删除存储在 Java FileOutputStream 上的单个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10055339/

相关文章:

java - 如何在数据库JAVA中建立两个对象之间的关系

java - Thingsboard Windows 安装错误

java - 如何拆分文本文件并在一行中存储 2 个值?

java - 在单个 Weblogic 域中的同一集群中部署两个 Spring 批处理应用程序?

java - 确定 Derby 网络服务器运行的是文件系统还是内存数据库

java - 将 map 添加到列表会导致多次添加相同的 map

java - RandomAccessFile 与 NIO channel

java - Multipart transferTo 在使用 createTempFile 时查找错误的文件地址

java - C3P0 连接池与 Heroku Postgres 发生冲突

java - 在 Java ME 中找不到 FileReader