欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

day20结业练习 -> java基础大神进阶学习总结之19天(知识点全面覆盖,细节)

程序员文章站 2024-03-08 18:26:05
...

java基础总结


java基础Ended-------补充一个综合练习(个人所写供参考学习)

在开发中使用比较多的还是字节和字符流的读写操作,务必要非常熟练,再体会一下六字箴言(读进来,写出去),到底有何深意。

综合练习题:做一个统计代码行数的程序,扫描一个目录能统计出该目录中包括所有子目录中所有Java文件的行数,不统计空行。

public class totalJava {

    public static int Total = 0;   //总共多少行
    public static int Dan = 0;     //单行注释
    public static int Duo = 0;     //多行注释
    public static int importJava = 0;  //包,导入相关

    public static void main(String[] args) throws FileNotFoundException {
/* 综合练习题:做一个统计代码行数的程序,
扫描一个目录能统计出该目录中包括所有子目录中所有Java文件的行数,不统计空行*/ 
        File file = new File("D:\\WorkSpace\\idea-workspace");
        int total = getLine(file,0,0);
        System.out.println("总行数:"+total);
        System.out.println("有效代码:"+(total - importJava - Dan -Duo));
        System.out.println("单行注释:"+Dan);
        System.out.println("多行注释:"+Duo);
        System.out.println("包的声明已经导入包:"+importJava);
    }
    static  public int getLine(File file, int linCount,int total) throws FileNotFoundException {
        //判断该文件是否为文件夹,或者目录
        if (file.isDirectory()){
           //是文件夹的话,拿到所有该文件夹下的文件
            File[] all_file = file.listFiles();
            for (File f : all_file) {
               //递归拿取每个文件(直到不是文件夹)
               getLine(f,linCount,total);
            }
            //不是文件夹,则开始计算该文件的行数
        }else {
           //记录每个java文件总代码行数
            int count = 0;
            //记录每个java文件的单行注释
            int DanCount = 0;
            //记录每个java文件的多行注释
            int DuoCount = 0;
            //记录每个java文件的导入包
            int Import = 0;
            //判断该文件是否为java文件
            if((file.getName().contains(".java"))){
                FileInputStream fileInputStream = new FileInputStream(file);
                Scanner scanner = new Scanner(fileInputStream);
                while (scanner.hasNext()){
                    String line = scanner.nextLine();
                    //总行
                    if (!"".equals(line.trim()) && line.trim().length() > 0 && line !=null){
                        System.out.println("该java文件的第"+count+"行"+"代码:"+line);
                        count++;
                    }
                    //包,导入相关
                    if (line.contains("package") || line.contains("import")){
                          Import++;
                    }
                    //单行注释
                    if (line.contains("//")){
                        DanCount++;
                    }
                    //多行注释
                    if (("/*").equals((line.trim())) || ("*/").equals(line.trim())){
                        DuoCount++;
                    }
                    //多行注释
                    if (line != null && line.trim().length() > 0 &&  "*".equals((line.trim()).charAt(0) ) ){
                        DuoCount++;
                    }

                }
            }
            Total +=count;
            importJava += Import;
            Dan += DanCount;
            Duo += DuoCount;
        }
        return Total;
    }
}

day20结业练习 -> java基础大神进阶学习总结之19天(知识点全面覆盖,细节)