如何保存和加载HashMap <string,object>?</string,object>

时间:2012-10-23 18:22:26

标签: java map load hashmap save

HashMap中

public Map<String, BarrackData> barrack = new HashMap<String, BarrackData>();

BarrackData.java

public class BarrackData {
int A;
int B;
int C;
int D;
int E;
String Title;

public BarrackData(int a, int b, int c, int d, int e, String title) {
    A = a;
    B = b;
    C = c;
    D = d;
    P = p;
    Title = title;
}

如何保存此HashMap? 加载它?
我用Objectin / outputstream尝试了不同的方法 它以NotSerializable,ObjectSteam和IO异常结束 我不知道如何处理它们。

3 个答案:

答案 0 :(得分:2)

只有Serializable个类可以序列化:只需将implements Serializable添加到您的班级:

public class BarrackData implements Serializable {


请注意,要实际 序列化,类中的所有字段必须为Serializable,但java基元,数组(如果元素类型为Serializable),java.lang类(如String)和Collections(如果元素类型为Serializable)为Serializable,那么您就可以了。

答案 1 :(得分:0)

你必须使你的Object类可序列化(给它serialize()和deserialize()方法,将它转换成一个字符串或一些可以保存/加载的方法)。显然,HashMaps可以促进开箱即用的一定程度的序列化。

以下是Java序列化教程的链接:http://www.tutorialspoint.com/java/java_serialization.htm

这里有一些关于HashMap序列化的更详细信息: Serializing and deserializing a map with key as string

波西米亚人提到,实施Serializable是实现这一目标的标准方法。

答案 2 :(得分:0)

要完成答案,请注意属于keySet() HashMap的结果(如果您在任何时候需要)不是Serializable

实际上,密钥不应与HashMap有关的值分开。