Java:从磁盘写入/读取映射

jaz*_*z99 13 java collections file-io serialization

我有一个数据结构,我希望能够在关闭程序之前写入文件,然后从文件中读取以在下次应用程序启动时重新填充结构.

我的结构是HashMap<String, Object>.对象非常简单; 对于成员变量,它有一个String,以及两个Boolean类型的小型本机数组.这是一个真正简单的应用程序,我不希望一次超过10-15 <key,value>对.

我一直在使用Object输入/输出流进行实验(不成功).我是否需要使Object类可序列化?

你能给我任何关于最佳方法的建议吗?我只需要朝着正确的方向努力.谢谢!

编辑:嗯,我仍然感到愚蠢,我正在从一张地图写入并阅读另一张地图,然后比较它们以检查我的结果.显然我在比较他们错了.叹.

Jig*_*shi 33

如果您不特别关注Object,那么您只需要键值对String,String然后我建议你去java.util.Properties.否则你去吧

        Map map = new HashMap();
        map.put("1",new Integer(1));
        map.put("2",new Integer(2));
        map.put("3",new Integer(3));
        FileOutputStream fos = new FileOutputStream("map.ser");
        ObjectOutputStream oos = new ObjectOutputStream(fos);
        oos.writeObject(map);
        oos.close();

        FileInputStream fis = new FileInputStream("map.ser");
        ObjectInputStream ois = new ObjectInputStream(fis);
        Map anotherMap = (Map) ois.readObject();
        ois.close();

        System.out.println(anotherMap);
Run Code Online (Sandbox Code Playgroud)

  • `.ser`不应该是核心问题,你可以在这里给任何扩展也没有扩展也可以在这里工作 (5认同)
  • 是的,`.ser`扩展对Java来说毫无意义. (2认同)