我现在有一个txt文件存放内存是否泄漏数据,想从数据里查出那条内存没有释放。
其中 m 代表 Memory 表示存进,f 代表 free 表示释放,m对应f 表示内存没有泄漏。
我现在的任务就是从N多数据里查出哪条数据 只存进 没有释放,即 m 比 f 多了几条数据。
附几条测试数据:
f,42190004,9941,9933,16,d:\工作目录\mapprenginex\src\graphics\mg_clip.c,571
f,3765508,9941,9934,48,d:\工作目录\mapprenginex\src\util\mu_matrix.c,642
f,3761276,9941,9935,48,d:\工作目录\mapprenginex\src\util\mu_matrix.c,642
f,42191548,9941,9936,8,d:\工作目录\mapprenginex\src\map\mm_proj.c,154
f,3755500,9941,9937,76,d:\工作目录\mapprenginex\src\map\mm_render.c,116m,42190004,9941,9933,16,d:\工作目录\mapprenginex\src\graphics\mg_clip.c,571
m,3765508,9941,9934,48,d:\工作目录\mapprenginex\src\util\mu_matrix.c,642
m,3761276,9941,9935,48,d:\工作目录\mapprenginex\src\util\mu_matrix.c,642
m,42191548,9941,9936,8,d:\工作目录\mapprenginex\src\map\mm_proj.c,154
m,3755500,9941,9937,76,d:\工作目录\mapprenginex\src\map\mm_render.c,116
m,375551,9941,9937,76,d:\工作目录\mapprenginex\src\map\mm_render.c,116

解决方案 »

  1.   

    不懂 没看明白LZ的意思 帮你UP一下
      

  2.   

    说的简单点就是从txt里检查出多余的那条 m
      

  3.   

     import   java.util.*;   
      import   java.io.*;   
        
      public   class   ReadTxt   {   
        
              public   static   void   main(String[]   args)   {   
        
                      try   {   
                       Hashtable ht = new Hashtable();
                       File   file   =   new   File("c:\\log.txt");   
                              BufferedReader   in   =   new   BufferedReader(new   InputStreamReader(   
                                              new   FileInputStream(file)));   
                              ArrayList   list   =   new   ArrayList();   
                              String   line   =   in.readLine();   
                              while   (line   !=   null)   {   
                                      StringTokenizer   st   =   new   StringTokenizer(line,",");   
                                      String[]   array   =   new   String[8];   
                                      String useKey="";
                                      for   (int   i   =   0;   i   <8   &&   st.hasMoreTokens();   i++)   {   
                                              String   temp   =   st.nextToken();                         
                                              if(i==1){
                                               useKey = temp;
                                              if(ht.containsKey(useKey)){
                                               ht.remove(useKey);
                                                    }else{
                                               ht.put(useKey,useKey);
                                              }
                                              break;
                                              }
                                      }   
                                      line   =   in.readLine();   
                              }   
        
                              Enumeration em = ht.elements();
                              while(em.hasMoreElements()){  
                               String temp =  em.nextElement().toString();
                               System.out.print("temp="+temp); 
                              }
                                
                      }   catch   (Exception   e)   {   
                              e.printStackTrace();   
                      }   
        
              }   
        
      }