想做一个根据文件名查找某个文件夹下的文件功能, 由于文件夹非常庞大, 导致使用file.listFiles()时内存溢出, 调整虚拟机参数也不行, 怎么解决?

解决方案 »

  1.   

    这个网站介绍了相关东西,你可以去看下
    http://study.feloo.com/news.php?id=197594
      

  2.   

    当然会喽。如果一个文件夹下有上千个文件,调用file.listFiles()方法是很容易就把内存给占满了。此时可以判断一下file.listFiles()获得的文件数量,而在程序中只保留文件名,在需要时再调用相应的方法将文件内容给读出来就可以了。不要把所有文件的内容全加载进去。
      

  3.   

    1.直接使用你需要查找的文件
    2.如果存在则可以正常使用
    3.如果不存在则会抛出“FileNotFound”异常,捕获即可
      

  4.   

    还有就是用 File[] listFiles(FilenameFilter filter)  用过滤器把需要的文件和目录保存下来,不需要的就不用保存了。
      

  5.   

    java调用系统命令操作返回值即可查看!!windowcd 需要查看的目录dir 匹配串 /s/pLinuxfind 路径 模式
      

  6.   

    可以了解下windows里面自带的搜索功能,它是基于B+数搜索的
      

  7.   

    里面肯定有大的zip之类的压缩文件