如何读取和写入哈希映射到文件?
我有以下哈希地图:
HashMap<String,Object> fileObj = new HashMap<String,Object>();
ArrayList<String> cols = new ArrayList<String>();
cols.add("a");
cols.add("b");
cols.add("c");
fileObj.put("mylist",cols);
我把它写到一个文件中,如下所示:
File file = new File("temp");
FileOutputStream f = new FileOutputStream(file);
ObjectOutputStream s = new ObjectOutputStream(f);
s.writeObject(fileObj);
s.flush();
现在我想将此文件读回HashMap,其中对象是ArrayList。如果我只是做:
File file = new File("temp");
FileInputStream f = new FileInputStream(file);
ObjectInputStream s = new ObjectInputStream(f);
fileObj = (HashMap<String,Object>)s.readObject();
s.close();
这不会以我保存它的格式为我提供对象。它返回一个包含 15 个空元素的表,< mylist,[a,b,c] 在第 3 个元素处>对。我希望它只返回一个元素,其中包含我首先提供给它的值。
如何将同一对象读回哈希映射?
好吧,根据Cem的笔记:这似乎是正确的解释:
ObjectOutputStream 以 ObjectInputStream 可以理解的任何格式序列化对象(在本例中为 HashMap),并对任何可序列化对象进行一般操作。如果您希望它以所需的格式序列化,则应编写自己的序列化程序/反序列化程序。
在我的情况下:当我从文件中读回对象并获取数据并对其执行任何操作时,我只是迭代HashMap中的每个元素。(它仅在有数据的位置进入循环)。
谢谢