当前位置: 代码迷 >> Eclipse >> hashmap存取的有关问题
  详细解决方案

hashmap存取的有关问题

热度:29   发布时间:2016-04-23 14:02:51.0
hashmap存取的问题
我用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
  相关解决方案