当前位置: 代码迷 >> Java相关 >> 从文件中取出地图中对象 总是空指针
  详细解决方案

从文件中取出地图中对象 总是空指针

热度:3014   发布时间:2013-02-25 21:44:53.0
从文件中取出map中对象 总是空指针
Java code
public int Register(User u){            map=new HashMap<String, User>();            try {                dos=new ObjectOutputStream(new FileOutputStream("user.data"));                dis=new ObjectInputStream(new FileInputStream("user.data"));                            } catch (FileNotFoundException e) {                // TODO Auto-generated catch block                e.printStackTrace();                            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();                    }                           try {                            map=(HashMap<String, User>)dis.readObject();                            } catch (IOException e1) {            // TODO Auto-generated catch block            int a=map.size();            System.out.println(a+"!!!!!!!!!!!!!!!!!!!!");        } catch (ClassNotFoundException e1) {            // TODO Auto-generated catch block            e1.printStackTrace();        }                                    map.put(u.getUname(), u);                                     try {                            dos.writeObject(map);                            dos.close();                            dis.close();                        } catch (IOException e) {                            // TODO Auto-generated catch block                            e.printStackTrace();                                                    }                        return 1;                            }



这是一个注册功能 我想每次注册都取出map 然后再put进去一个新的值。
但是每次都是提示空指针。
System.out.println(a+"!!!!!!!!!!!!!!!!!!!!");

a永远是0.
是哪里出的错?谢谢各位大神

------解决方案--------------------------------------------------------
FileOutputStream 和 FileInputStream 不要同时打开!

1、先用FileInputStream把内容读取出来,然后关闭文件;
2、处理Map,增加值啥的;
3、最后用FileOutputStream,写入完毕后,再关闭文件。
  相关解决方案