public static void main(String[] args) throws IOException {
//填入需要匹配的文件夹
File file=new File("E:\\demo");
//调用方法
matchesFile(file);
}
public static void matchesFile(File file) throws IOException {
//判断文件类对象是否是文件夹
if(file.isDirectory()){
//把当前文件所有的信息放到数组中
File[] fs=file.listFiles();
//遍历数组
for(File f:fs){
//把每个数组元素再次调用本方法---每个获取到文件类对象
//这个为递归调用
matchesFile(f);
}
}else{
BufferedReader br=new BufferedReader(new FileReader(file));
String str="";
//按行读取
while((str=br.readLine())!=null){
//进行正则匹配
//把需要匹配的内容填入matches的方法中
if(str.matches(".*(te).*")) {
//打印匹配到的文件全路径名
System.out.println(file.getAbsolutePath());
}
}
}
}
遍历文件夹,如果遍历到文件,会读取文件,然后文件按行进行正则匹配 在控制台打印文件全路径名
如果一个行内,有多次匹配到正则表达式中的内容,则将会打印多次文件的全路径名。