Сериализация HashMap и запись в файл - PullRequest
0 голосов
/ 06 июля 2018

У меня есть HashMap, который содержит Set<String> в качестве ключа и значения,

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

Если я хочу записать этот HashMap объект в файл, то как лучше всего это сделать. Также я хочу прочитать это обратно из этого файла как HashMap<Set<String>, Set<String>>.

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Вот как я записываю карту в файл и считываю ее обратно из файла. Вы можете адаптировать его для своего варианта использования.

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");
}
0 голосов
/ 06 июля 2018

Я не уверен, если вы действительно хотите это сделать, но с использованием сериализации это так просто:

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