0

我正在使用 FileHashMap 将我的 Hashmap 映射到一个文件。

我在用

Map<String, String> myMap = new FileHashMap<String, String>("c:/myFile", FileHashMap.TRANSIENT);

然后我可以像使用 HashMap 一样使用 myMap。不同的是,所有内容都将保存到文件中,当我将其删除时,它也会从文件中删除。

我可以在哪里使用这个 FileHashMap,它可以使用现有文件并使用文件中已经存在的内容。因此,如果我的应用程序停止,我可以再次从我离开的地方开始。

4

2 回答 2

1

如果您在示例中声明它,您将只能访问接口中可用的方法Map。如果你想通过访问它的FileHashMap方法来访问它,你必须这样声明它:

FileHashMap<String, String> myMap = 
    new FileHashMap<String, String>("c:/myFile", FileHashMap.CREATE);
...
myMap.save();

至于CREATE问题,JavaDoc 中没有FileHashMap.CREATE标志。这是默认值——如果文件不存在,它将创建文件,如果文件已存在,则使用现有文件。非瞬态的唯一选择 if NO_CREATE- 如果文件不存在,则抛出异常。

于 2013-07-08T19:47:37.360 回答
0

我认为您需要仔细查看javadoc。 http://software.clapper.org/javautil/api/org/clapper/util/misc/FileHashMap.html

如果您希望重新打开所有内容,为什么要让您的 FileHashMap 瞬态?像这样创建您的 FileHashMap:

//this statements opens a persistent FileHashMap, creating it if it doesn't already exist:
//should be this
FileHashMap map = new FileHashMap ("/my/map/dir", FileHashMap.CREATE);
//NOT THIS
Map map = new FileHashMap ("/my/map/dir", FileHashMap.CREATE);
//write a bunch of stuff
map.save();

编辑:哎呀 :) 您需要将其声明为 FileHashMap 否则您只能使用 Map 的方法。

于 2013-07-08T18:52:05.500 回答