首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

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

2012-09-09 
从文件中取出map中对象 总是空指针Java codepublic int Register(User u){mapnew HashMapString, User(

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

热点排行