A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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);
                        }
                }
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马