查找文件夹下所有文件(内部),是否包含指定字符串。
import java.io.BufferedReader;
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class FileDemo {
static String path = "E:\\Documents\\MyCode\\bullet3-3.17\\src\\";
static String aimString = "btTriangleCallback";
public static void main(String[] args) throws Exception {
getFileName(path);
}
//获取该目录下所有的文件
public static void getFileName(String filePath) throws IOException{
File file = new File(filePath);
//判断文件或目录是否存在
if(!file.exists()){
System.out.println("【"+filePath + " not exists】");
}
//获取该文件夹下所有的文件
File[] fileArray= file.listFiles();
File fileName = null;
for(int i =0;i<fileArray.length;i++){
fileName = fileArray[i];
//判断此文件是否存在
if(fileName.isDirectory()){
//System.out.println("【目录:"+fileName.getName()+"】");
getFileName(fileName.getAbsolutePath());
}else{
//System.out.println(fileName.getName());
findStringInFile(fileName.getAbsolutePath());
}
}
}
//对每个文件进行内部 字符串查找
public static void findStringInFile(String path) throws IOException{
File file = new File(path);
InputStreamReader read = new InputStreamReader(new FileInputStream(file),"UTF-8");//考虑到编码格式
BufferedReader bufferedReader = new BufferedReader(read);
String line = null;
while ((line = bufferedReader.readLine()) != null) {
//需要过滤的行
if(line.startsWith("//")){
continue;
}
//指定字符串判断处
if (line.contains(aimString)) {
System.out.println(path+" line="+line);
}
}
}
}