我正在使用FileHashMap将我的Hashmap映射到一个文件。
我正在使用
Map<String, String> myMap = new FileHashMap<String, String>("c:/myFile", FileHashMap.TRANSIENT);
然后我可以像使用HashMap一样使用myMap。区别在于所有内容都将保存到文件中,当我将其删除时,它也将从文件中删除。
我可以使用此FileHashMap,它可以使用现有文件并使用已存在的文件中的内容。因此,如果我的申请停止,我可以再次从我离开的地方开始。
答案 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的方法。