當前位置:成語大全網 - 新華字典 - java如何實現文件搜索功能

java如何實現文件搜索功能

java實現文件搜索主要使用file類和正則表達式,如下示例:

package?com.kiritor.util;

import?java.io.File;

import?java.io.FileFilter;

import?java.util.Arrays;

import?java.util.Collections;

import?java.util.List;

/**

*?文件的相關操作類

*?

*?@author?Kiritor

*/

public?class?FileOperation?{

private?static?String?contentPath;

private?static?String?filePath;

private?static?File[]?fileList?=?null;//?保存文件列表,過濾掉目錄

public?FileOperation()?{

}

/**?構造函數的參數是壹個目錄?*/

public?FileOperation(String?path)?{

File?file?=?new?File(path);

if?(file.isDirectory())

this.contentPath?=?path;

else

this.filePath?=?path;

}

/**獲取文件列表*/

public?static?File[]?getFiles()?{

if?(contentPath?==?null)?{

File?file?=?new?File(filePath);

fileList?=?new?File[1];

fileList[0]?=?file;

return?fileList;

}

fileList?=?new?File(contentPath).listFiles(new?FileFilter()?{

/**使用過濾器過濾掉目錄*/

@Override

public?boolean?accept(File?pathname)?{

if(pathname.isDirectory())

{

return?false;

}else

return?true;

}

});

return?fileList;

}

/**?對當前目錄下的所有文件進行排序?*/

public?static?File[]?sort()?{

getFiles();

Arrays.sort(fileList,?new?FileComparator());

return?fileList;

}

public?static?void?tree(File?f,?int?level)?{

String?preStr?=?"";

for(int?i=0;?i<level;?i++)?{

preStr?+=?"";

}

File[]?childs?=?f.listFiles();

//返回壹個抽象路徑名數組,這些路徑名表示此抽象路徑名表示的目錄中的文件。

for(int?i=0;?i<childs.length;?i++)?{

System.out.println(preStr?+?childs[i].getName());

if(childs[i].isDirectory())?{

tree(childs[i],?level?+?1);

}

}

}

//?提供壹個"比較器"

static?class?FileComparator?implements?java.util.Comparator<File>?{

@Override

public?int?compare(File?o1,?File?o2)?{

//?按照文件名的字典順序進行比較

return?o1.getName().compareTo(o2.getName());

}

}

}