package com.wangpaidog.test;
importjava.io.BufferedReader;importjava.io.File;importjava.io.FileInputStream;importjava.io.InputStreamReader;public classFileTest {public static voidmain(String[] args) {
FileTest.showFileName("E:\JavaBase\spaceManagement\src\main\webapp", "login","css","jsp","java");
}/***
*@parampath 传入文件目录
*@paramfindContent 传入查找内容
*@paramfilestyle 传入查找的文件格式 --其实是文件名包含的字段*/
public static voidshowFileName(String path, String findContent, String... filestyle) {
File file= newFile(path);if (file.exists() && file.isDirectory()) { //判断目录存在
File[] files =file.listFiles();if (files == null) { //如果文件夹无权访问会返回空,文件可以用canRead()
System.out.println("无权限访问目录");return;
}/** 遍历输出文件*/
for(File file1 : files) {//目录文件,继续迭代
if(file1.isDirectory()) {
showFileName(file1.toString(), findContent,filestyle);
}else if(file1.isHidden()) {//System.out.println("隐藏文件: " + file1.getName());
} else{//可访问显式文件//这里设置了文件类型
for(String style : filestyle) {if ((file1.getName().indexOf(style) != -1)) {
String str=file1.getPath();try{//调用函数查询
FileTest.findFile(str, findContent);
}catch(Exception e) {
e.printStackTrace();
System.out.println("出错了");
}
}
}
}
}
}
}/***
*@paramfilename 文件名称
*@paramstr 查找的内容
*@throwsException*/
private static void findFile(String filename, String findContent) throwsException {
File file= newFile(filename);
InputStreamReader read= new InputStreamReader(new FileInputStream(file), "UTF-8");
BufferedReader buff= newBufferedReader(read);
String linexTxt= null; //用于放置读取到的每一行
int i = 0; //用于记录找到的行数
while ((linexTxt = buff.readLine()) != null) {
i++;if (linexTxt.indexOf(findContent) != -1) {
System.out.println(filename+ ":::::" +i);
}
}
buff.close();
read.close();
}
}