序列化HashMap并将其写入文件

时间:2018-07-06 11:32:31

标签: java hashmap file-writing

我有一个HashMap,其中包含Set<String>作为键和值,

HashMap<Set<String>, Set<String>> mapData = new HashMap<Set<String>, Set<String>>();

如果我想将此HashMap对象写到文件中,什么是最好的方法。我也想从该文件中以HashMap<Set<String>, Set<String>>的形式读回它。

2 个答案:

答案 0 :(得分:1)

这是我将映射写入文件并从文件读回的方式。您可以针对您的用例进行调整。

public static Map<String, Integer> deSerializeHashMap() throws ClassNotFoundException, IOException {
    FileInputStream fis = new FileInputStream("/opt/hashmap.ser");
    ObjectInputStream ois = new ObjectInputStream(fis);
    Map<String, Integer> map = (Map<String, Integer>) ois.readObject();
    ois.close();
    System.out.printf("De Serialized HashMap data  saved in hashmap.ser");
    return map;
}

public static void serializeHashMap(Map<String, Integer> hmap) throws IOException {
    FileOutputStream fos = new FileOutputStream("/opt/hashmap.ser");
    ObjectOutputStream oos = new ObjectOutputStream(fos);
    oos.writeObject(hmap);
    oos.close();
    fos.close();
    System.out.printf("Serialized HashMap data is saved in hashmap.ser");
}

答案 1 :(得分:0)

我不确定,如果您真的想这样做,但是使用序列化就这么简单:

try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(yourFile)))
{
   out.writeObject(map);
}