public class File_自定义一个查找小程序 {
public static void main(String[] args) throws IOException {
//File dir = new File("E:\\eclipse");
File dir = new File("E:\\eclipse");
File dir1 = new File("E:\\myWorkplace");
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要找的内容:");
String str=sc.nextLine();
find(dir1,str);
find(dir,str);
StringFind(dir,str);//这个方法是输出你要查找内容所在的路径
int k = getNum(dir,0);//这个方法是你要统计的文件夹下所有的.java文件
System.out.println(k);
}
public static void find(File dir,String str) {
File[] arr = dir.listFiles();
for (File file : arr) {
if(file.isFile() && file.getName().contains(str) && file.getName().contains(".java")){
System.out.println(file);
} else if (file.isDirectory()) {
find(file,str);
}
}
}
public static int getNum(File dir, int num) {
File[] arr = dir.listFiles();
for (File file : arr) {
if (file.isFile() && file.getName().endsWith(".java")) {
num=num+1;
} else if (file.isDirectory()) {
num=getNum(file,num);//这里不能写num=num+getNum(file,num);这样会有问题
}
}
return num;
}
/* 读写文件中的内容
* */
public static void StringFind(File dir,String str) throws IOException{
File[] arr = dir.listFiles();
for (File file : arr) {
if(file.isFile() && file.getName().contains(".java")){
BufferedReader br = new BufferedReader(new FileReader(file));
String st;
while((st=br.readLine())!=null){
if(st.contains(str)){
System.out.println(file);
System.out.println(st);
break;
}
}
br.close();
} else if (file.isDirectory()) {
StringFind(file,str);
}
}
}
}
|
|