开发者社区 问答 正文

java如何将多个hashmap写入文件并单个存取?

java如何将多个hashmap写入文件,并可以单个存取?

展开
收起
蛮大人123 2016-02-22 14:10:15 3800 分享 版权
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    直接上代码:主要就是使用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();
            }
            
        }
    2019-07-17 18:46:38
    赞同 展开评论
问答分类:
问答地址: