java hashmap读_java – 如何读写一个HashMap到一个文件?

我有以下HashMap:

HashMap fileObj = new HashMap();

ArrayList cols = new ArrayList();

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,其中Object是一个ArrayList.

如果我只是这样做:

File file = new File("temp");

FileInputStream f = new FileInputStream(file);

ObjectInputStream s = new ObjectInputStream(f);

fileObj = (HashMap)s.readObject();

s.close();

这不会以我保存的格式给我对象.

它返回一个具有15个空元素的表,并且< mylist,[a,b,c]>配对在第3个元素.我希望它只返回一个元素与我提供给它的值首先.

//如何将相同的对象读回到HashMap?

OK所以基于Cem的笔记:这是什么似乎是正确的解释:

ObjectOutputStream以ObjectInputStream将以任何格式解析对象(HashMap在这种情况下)进行序列化,以反序列化,并对任何可序列化对象进行一般性的排序.

如果您希望以您希望的格式序列化,您应该编写自己的serializer / deserializer.

在我的情况下:当我从文件中读取Object并获取数据并使用它做任何事情时,我只需遍历HashMap中的每个元素. (它只在有数据的点进入循环).

谢谢,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值