黑马程序员技术交流社区

标题: 自定义一个程序,帮你查找某个盘符下,包含特定字的文件的文件路径 [打印本页]

作者: wolfking0608    时间: 2016-10-9 13:03
标题: 自定义一个程序,帮你查找某个盘符下,包含特定字的文件的文件路径
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);
                        }
                }
        }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2