读取某个目录下所有JAVA文件的代码行数

举报
桃花键神 发表于 2022/04/17 12:33:00 2022/04/17
【摘要】 读取某个目录下所有JAVA文件的代码行数
package cn;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;

/**
 * @author yeqv
 * @program A2
 * @Classname test
 * @Date 2022/1/16 15:20
 * @Email w16638771062@163.com
 */
public class test {
    static int num = 0;
    static int rows = 0;
    static int space = 0;

    public static void main(String[] args) throws FileNotFoundException {
        String path = "D:\\idea\\ja";
        count(new File("D:\\idea\\ja"));
        System.out.printf("%s 共有%d个java程序文件%n", "d:/eclipse- workspace", num);
        System.out.printf("共 %d 行代码%n", rows);
        System.out.printf("共 %d 空行代码%n", space);
    }

    public static void count(File dir) throws FileNotFoundException {
        if (dir.isDirectory()) {
            File[] f = dir.listFiles();
            for (File t : f) {
                if (t.isDirectory()) count(t);
                if (t.isFile() && t.getName().endsWith(".java")) {
                    ++num;
                    BufferedReader br = new BufferedReader(new FileReader(t));
                    rows += br.lines().filter(e -> e.trim().length() > 0).count();
                    BufferedReader br2 = new BufferedReader(new FileReader(t));
                    space += br2.lines().filter(e -> e.trim().length() == 0).count();
                }
            }
        }
        if (dir.isFile() && dir.getName().endsWith(".rar")) {
            ++num;
            BufferedReader br = new BufferedReader(new FileReader(dir));

            rows += br.lines().count();
            BufferedReader br2 = new BufferedReader(new FileReader(dir));
            space += br2.lines().filter(e -> e.trim().length() == 0).count();
        }
    }


}



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。