相关疑难解决方法(0)

如何读取和写入文件的HashMap?

我有以下HashMap:

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);  
Run Code Online (Sandbox Code Playgroud)

我将它写入文件如下:

File file = new File("temp");  
FileOutputStream f = new FileOutputStream(file);  
ObjectOutputStream s = new ObjectOutputStream(f);          
s.writeObject(fileObj);
s.flush();
Run Code Online (Sandbox Code Playgroud)

现在我想将此文件读回HashMap,其中Object是一个ArrayList.如果我只是这样做:

File file = new File("temp");  
FileInputStream f = new FileInputStream(file);  
ObjectInputStream s = new ObjectInputStream(f);  
fileObj = (HashMap<String,Object>)s.readObject();         
s.close();
Run Code Online (Sandbox Code Playgroud)

这不会以我保存的格式给出对象.它返回一个包含15个null元素的表和第3个元素的<mylist,[a,b,c]>对.我希望它只返回一个元素,其中包含我首先提供给它的值.
//如何将同一个对象读回HashMap?

好基于Cem的说明:这似乎是正确的解释:

ObjectOutputStream以ObjectInputStream理解的反序列化格式序列化对象(在本例中为HashMap),并且对任何Serializable对象都是如此.如果您希望以您希望的格式进行序列化,则应编写自己的序列化器/解串器.

就我而言:当我从文件中读回Object并获取数据并用它做任何我想做的事情时,我只是遍历HashMap中的每个元素.(它只在有数据的地方进入循环).

谢谢,

java file-io file hashmap

17
推荐指数
2
解决办法
7万
查看次数

标签 统计

file ×1

file-io ×1

hashmap ×1

java ×1