我用hashmap key=Calenar;val=event(自定义一个类);
希望把hashmap 在save class 中存放到t.txt中,
再从select class中取出,并且希望得到event 中的toString()方法的值
求救!!
我是这样放的: HashMap<Calendar,Event> map=new HashMap<Calendar,Event>();
Calendar cal1=new GregorianCalendar(y1,m1,d1);
Event ev=new Event(y1,m1,d1,y2,m2,d2,bri,inf,c);//自定义的类
map.put(cal1, ev);
try{
ObjectOutputStream out1=new ObjectOutputStream(new FileOutputStream("Calendar.txt"));
out1.writeObject(cal1);
out1.close();
}catch(IOException e){}
取:
cal=new GregorianCalendar(y,m,d);
Map map=null;
try{
ObjectInputStream inTwo=new ObjectInputStream(new FileInputStream("Calendar.txt"));
map=(HashMap)inTwo.readObject();
inTwo.close();
}catch(Exception ee){
}
Iterator iter=map.entrySet().iterator();
///// 遍历hashmap
while(iter.hasNext()){
Map.Entry entry=(Map.Entry)iter.next();
Object key=entry.getKey();
Object val=entry.getValue();
String s=((Event)val).toString();
System.out.println(s);
}
------解决方案--------------------
out1.writeObject(cal1)应该改为out1.writeObject(map)
lz写的是Calendar对象,取的确是map
------解决方案--------------------
2L,3L已经指出问题所在,重点在于2L,写和读不是同一个序列化对象信息,写的Calendar,读的是HashMap