读书人

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

发布时间: 2012-09-09 09:27:54 作者: rapoo

从文件中取出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,写入完毕后,再关闭文件。

读书人网 >Java相关

热点推荐