gpt4 book ai didi

java - FileHashMap : Reuse the same hashmap

转载 作者:行者123 更新时间:2023-12-01 14:21:08 27 4
gpt4 key购买 nike

   FileHashMap<int, String> myMap = new FileHashMap<int, String>("/myFile");       
myMap.put(1, "First");
myMap.put(2, "Second");
myMap.save();
myMap.close();

根据我的理解,这段代码会将 Hashmap 文件保存到磁盘上...但是当我再次创建 FileHashMap 的对象时,如下所示:

    FileHashMap<int, String> myMap = new FileHashMap<int, String>("/myFile");       
if(myMap.containsKey(1){
System.out.println("Yes");
}
else{
System.out.println("No");
}

这给出的输出为“否”..我想重用该文件,重用 HashMap ...我该怎么做..任何人都可以解释一下吗??

最佳答案

这是您的问题:API令人困惑。它说“[a] FileHashMap 默认情况下是持久的”,但是零参数和一参数构造函数(您使用的指定文件名的构造函数是一参数)创建一个新的 transient em> FileHashMap — 即在 FileHashMap 关闭后文件被删除。两个参数的构造函数接受文件名和一个 int 选项标志,但没有“持久”的特定选项,因此您只需确保该标志不是“ transient ”的(准确地说, flags & FileHashMap.TRANSIENT == 0)。

为了让它保存并打开文件,请将 0 作为标志传递给构造函数(除非您需要其他选项 - 请阅读文档),如下所示:

new FileHashMap<Integer, String>(fileName, 0);

请注意,通用参数需要是 Integer 而不是 int,如注释所述。另请注意,您可能希望文件路径不是“/myFile”,因为这很可能会给您带来权限被拒绝的错误,除非您以 root 身份运行,而您可能不应该以 root 身份运行。

关于java - FileHashMap <K,V> : Reuse the same hashmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17551836/

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