【问题标题】:Reading & Writing multiple HashMaps [duplicate]读取和写入多个 HashMap [重复]
【发布时间】:2017-12-04 00:49:25
【问题描述】:

我有两个 HashMap

public static HashMap<String, Date> taskMap = new HashMap<String, Date>();
private HashMap<String,String> passMap = new HashMap<String, String>();

一种只能读取第一张地图的方法

private void readData() {
    try {
        FileInputStream fileIn = new FileInputStream("data/tasks.ser");
        ObjectInputStream ois = new ObjectInputStream(fileIn);
        taskMap.putAll((HashMap)ois.readObject());
        ois.close();
    }
    catch (Exception e) {
        e.printStackTrace();
    }
}

我想知道是否有一种方法可以将两个 HashMap 写入一个文件中,然后能够读取它们以提高效率。

【问题讨论】:

    标签: java input stream hashmap output


    【解决方案1】:

    是的,只需将它们都写入ObjectOutputStream,然后以相同的顺序从ObjectInputStream 读取它们。

    【讨论】:

      【解决方案2】:

      您只需要定义您想要存储它们的方式,对象序列化只序列化一个对象,一种方法是创建一个包含两个映射的包装类,另一种方法是更改​​您的序列化机制。

      【讨论】:

      • '对象序列化只序列化一个对象'是无稽之谈。 Java 对象序列化可以序列化任意数量的对象。
      • 尽管如此,这种方法还是可行的。尤其是容器类,如果一次存储多个容器类可能会很有用。
      • @Zabuza 当然可以,这本身就证明我引用的陈述是不正确的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-17
      • 1970-01-01
      相关资源
      最近更新 更多