gpt4 book ai didi

Java writeObject() 始终覆盖现有对象,从不追加?

转载 作者:行者123 更新时间:2023-11-29 09:54:45 26 4
gpt4 key购买 nike

我想使用 ObjectOutputStream.writeObject() 将哈希表序列化为文件,但我希望编写器始终覆盖任何现有对象,以便只存在一个对象:

FileOutputStream fout = new FileOutputStream( f);
ObjectOutputStream writer = new ObjectOutputStream(fout);
writer.writeObject( hashtable);
writer.flush();

hastable 在运行时间歇性地更新,所以我使用辅助方法来保持它的状态:

private void persistObject( Hashtable ht){
writer.writeObject( ht);
writer.flush();
}

问题是每次我调用writeObject()时,一个新的hastable被附加到文件;有没有什么方法可以覆盖文件中的任何内容,以便只保留一个对象?

最佳答案

最简单的方法是关闭并重新打开文件,只需在 persistObject() 方法中重新运行此代码即可:

private void persistObject( Hashtable ht){
try (ObjectOutputStream writer = new ObjectOutputStream(new FileOutputStream(f))) {
writer.writeObject( hashtable);
writer.flush();
writer.close();
}
}

关于Java writeObject() 始终覆盖现有对象,从不追加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18264855/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com