日期:2014-05-20  浏览次数:20631 次

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

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