给了一个4G的目录
要找出其中.java后缀的
然后还要在所有找出的文件进行全文搜索一个自己手动输入的字符串
有没有个优化方案 
能够速度快一点的输出

解决方案 »

  1.   

    找出java文件,用正则匹配,暂时想不出更好的方法。
    搜索修改文件,可以用下nio包中的几个类:
    FileChannel;
    MappedByteBuffer;
    CharBuffer;//还有类似的,取决于你操作的类型
    可以这样得到通道:FileChannel fc = new RandomAccessFile(new File(""),"r_w").getchannel();
    这种方法的性能比直接用RandomAccessFile的性能好不少。你先了解下。
      

  2.   

    递归+过滤器(FilenameFilter)
    完了再遍历文件内容
      

  3.   


    FileChannel  可以把文件映射到内存中进行,操作效率提高了
      

  4.   

    public void Search(File dir) 
    {
    File[] files=dir.listFiles();
    for(File file: files)
    {
    if(file.isDirectory())
    Search(file);
    else
    {
    if(file.getName().endsWith(".java"))
    System.out.println(file.toString());
    }
    }
    }