java如何将多个hashmap写入文件,并可以单个存取?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
直接上代码:主要就是使用ObjectOutputStream;多个Map放到List中去,具体可以变通,单个存取,也可以将多个Map放到一个新的Map中去。
public void writeObject(){
try {
Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("a1", "a-aaa");
map1.put("a2", "a-bbb");
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("b1", "b-aaa");
map2.put("b2", "b-bbb");
List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();
list.add(map1);
list.add(map2);
FileOutputStream outStream = new FileOutputStream("E:/1.txt");
ObjectOutputStream objectOutputStream = new ObjectOutputStream(
outStream);
objectOutputStream.writeObject(list);
outStream.close();
System.out.println("successful");
} catch (Exception e) {
e.printStackTrace();
}
}
public void readObject(){
FileInputStream freader;
try {
freader = new FileInputStream("E:/1.txt");
ObjectInputStream objectInputStream = new ObjectInputStream(freader);
HashMap<String,Object> map = new HashMap<String,Object>();
List<Map<String, Object>> list=(List<Map<String, Object>>)objectInputStream.readObject();
for (Map<String, Object> map2 : list) {
System.out.println(map2.toString());
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}