首页 > 其他分享 >对于在指定目录下实现遍历其所有子文件的实现

对于在指定目录下实现遍历其所有子文件的实现

时间:2022-10-22 12:55:22浏览次数:51  
标签:file 遍历 String 实现 File ff new 目录

特地来强调一下这个方法

下面这个图片,是利用递归来遍历输出指定目录下的子文件路径名:

上述内容是遍历输出指定目录下的子文件路径名,要是想要实现循环遍历该目录下的所有子文件,并实现上一篇提到的统计单词的功能,可以这样做:

//Main.java
public static void main(String[] args) throws IOException {
        String s;

        File file=new File("D:\\Study\\Code\\JavaWeb\\IDEA\\tt1021");
        fileName(file);

    }

    public static void fileName(File file) throws IOException {
        File[] listfiles=file.listFiles();
        for(File ff:listfiles){
            if(ff.isDirectory()){
                fileName(ff);
            }
            else{
                System.out.println(ff);

                String s;
                int count=0;
                int num=1;
                BufferedReader br=new BufferedReader(new FileReader(ff));

                StringBuffer sb=new StringBuffer();
                while((s=br.readLine())!=null){
                    sb.append(s);
                }
                String m=sb.toString().toLowerCase();

                String[] mm=m.split("[^a-zA-z0-9]+");

                Map<String,Integer> map=new TreeMap<String,Integer>();

                for(int i=0;i<mm.length;i++){
                    if(map.containsKey(mm[i])){
                        count=map.get(mm[i]);
                        map.put(mm[i],count+1);
                    }else{
                        map.put(mm[i],1);
                    }
                }

                List<Map.Entry<String,Integer>> list=new ArrayList<Map.Entry<String,Integer>>(map.entrySet());

                for(Map.Entry<String,Integer> ma:list){
                    System.out.println(ma.getKey()+":"+ma.getValue());
                }
             }
        }
    }

即在原来仅仅遍历子文件路径的基础上,在那个子方法里面放置进行该文件的内容的输出;
大体上的思路不变,就是将原来在psvm里面的输出语句啥的放到了递归方法里面。

标签:file,遍历,String,实现,File,ff,new,目录
From: https://www.cnblogs.com/liuzijin/p/16815496.html

相关文章

  • vue.js中实现阻止事件冒泡
    当父子元素中都有点击事件的时候,为了让触发子元素中的事件时,不去触发父元素中的事件,可以在子元素事件中添加stop来阻止事件冒泡。 .stop是阻止冒泡行为,不让当前元素的......
  • 图的广度深度遍历
    图的深度遍历以一条路径优先选一个点作为起点,再走向相邻的没有被访问过的点。一条路径走完后,如果还有没被访问的点,则再选择一个点作为起点,走向相邻的未被访问的点。如图......
  • 树的遍历
    树的遍历有前序遍历,中序遍历和后序遍历。前序遍历以二叉树根部为起点,沿着外延依次访问一圈,最后回到二叉树根部DBACEGF中序遍历将二叉树里的点向下做投影,投影排成一条......
  • 实现mypwd
    实验内容1.学习pwd命令2.研究pwd实现需要的系统调用(man-k;grep),写出伪代码3.实现mypwd4.测试mypwd实践过程学习pwd命令1.pwd命令功能Linux中,pwd命令用于显示工......
  • 数据库连接池_实现介绍和数据库连接池_c3p0基本使用
    数据库连接池_实现介绍:1.实现∶   1.标准接口:Datasource  javax.sql包下的1.方法∶获取连接:getconnection()归还连接:connection.close()。如果连接对象C......
  • 二维数组遍历
    代码:@Testpublicvoidsolve(){inti,j=0;char[][]grid=newchar[5][5];Map<String,Integer>pass=newLinkedHashMap<Strin......
  • 在线问题反馈模块实战(十四):实现在线答疑功能
    ......
  • 基于Astar算法实现飞行轨迹的三维规划附Matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • 数据库连接池概述和实现介绍
    数据库连接池-概述概念:其实就是一个容器(集合),存放数据库连接容器当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象......
  • 非表单组件实现双向绑定的小技巧-- v-model 代替 .sync
    简介一般地,双向绑定多用于表单这类输入组件,但在非表单组件上使用双向绑定的需求也很常见,比如具有单选性质的菜单、标签页等组件,通过双向绑定可以更方便地获取和修改激活项......