FileHashMap <k,v =“”> </k,>

时间:2013-07-08 18:29:52

标签: java file hashmap mapping

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

我正在使用

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

然后我可以像使用HashMap一样使用myMap。区别在于所有内容都将保存到文件中,当我将其删除时,它也将从文件中删除。

我可以使用此FileHashMap,它可以使用现有文件并使用已存在的文件中的内容。因此,如果我的申请停止,我可以再次从我离开的地方开始。

2 个答案:

答案 0 :(得分:1)

如果您在示例中声明它,您将只能访问Map界面中可用的方法。如果您想以FileHashMap方式访问其方法,则必须将其声明为:

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

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

答案 1 :(得分: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的方法。