HashMap
因此,我在将属性存储到文件时遇到了转换问题,Properties
因为 的键HashMap
是一个无法转换为的对象,java.lang.String
因为属性必须是(String, String)
而 my HashMap
is (Object, Long)
。
我只想将 的内容保存到文件中,以便下次运行程序时HashMap
可以将这些内容加载回。HashMap
我经历了过多的毫无价值的尝试,试图HashMaps
在它们被保存之前重新填充它们所包含的对象。我试图想出一种简单的方法将对象转换为我可以做的字符串,但是由于Properties
并且HashMaps
没有被索引,我无法将这些字符串更改回它们需要的对象。如何做到这一点?
这是我正在尝试做的事情:
public File savedHashMaps = new File("SavedHashMaps.list");
// in my case, the object is 'Location' from an implemented API
public Map<Location, Long> map = new HashMap<Location, Long>();
public void saveMaps() {
Properties prop = new Properties();
try {
if (!map.isEmpty()) {
prop.load(new FileInputStream(savedHashMaps));
prop.putAll(map);
prop.store(new FileOutputStream(savedHashMaps), null);
}
} catch (IOException e) {
e.printStackTrace();
}
}
public void loadMaps() {
Properties prop = new Properties();
try {
prop.load(new FileInputStream(savedHashMaps));
if (!prop.isEmpty()) {
map.putAll((Map)prop);
}
} catch (IOException e) {
e.printStackTrace();
}
}