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

java readline()内存溢出有关问题

2012-02-21 
java readline()内存溢出问题我有这样的一个方法:publicstaticvoidreadSysNum(Stringfile){InputStreamRea

java readline()内存溢出问题
我有这样的一个方法:
        public   static   void   readSysNum(String   file)   {
                InputStreamReader   isr   =   null;
                BufferedReader   br   =   null;
                try   {
                        isr   =   new   InputStreamReader(new   FileInputStream(
                                        file));
                        br   =   new   BufferedReader(isr);
                        String   buf   =   null;
                        SystemNumHash   =   new   Hashtable();
                        String[]   bufs   ;
                        while   ((buf   =   br.readLine())   !=   null)   {
                                bufs   =   buf.split( ", ");
                                SystemNumHash.put(bufs[0]   +   bufs[1],   bufs[2]   +   ", "   +   bufs[3]);
                        }
//2007/06/04用完输入流将流关闭
                        br.close();
                        isr.close();
                        br=null;
                        isr=null;
//                       用完了把buf,bufs释放掉
                        buf   =   null;
                        bufs   =   null;
                        System.gc();
                }   catch   (IOException   e)   {
                        log.error( "in   readSystemNum   readSysNum()   e====> "   +   e);
                }

        }
当我程序运行起来后,我用Jbuilder2005的Optimize查看内存情况,最后内存占用率高都指向SystemNumHash.put(bufs[0]   +   bufs[1],   bufs[2]   +   ", "   +   bufs[3]);我运行完后还刻意把一些对象释放了。我百思不得其解,请高手指点是什么原因,或者有什么别的方法


[解决办法]
你还是把对象全部Put到Hashtable中了,这个当然是很大!Put进去的对象是不会释放的
[解决办法]
新手 没看明白你在干啥

[解决办法]
呵呵,你这样做等于把一个文件全部放到内存当中,文件大占用内存就大.

热点排行