• java_获取多个文件夹下所有.java源码的总行数


    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.ArrayList;


    public class GetSourceCodeSumLine {
        /**
         * @param args
         */
        public static void main(String[] args) {

            // String JavaSourceCodeDir[] = {"G:\workspace\...\...\src", "G:\workspace\...\...\src"};
            String JavaSourceCodeDir[] = { "E:\workspace\...\...\...\src\com" };
           
            long codeCountLine = getJavaSourceCodeCountLine(JavaSourceCodeDir);

    //        ArrayList<String> JavaSourceCodeDirs = new ArrayList<String>();
    ////        JavaSourceCodeDirs.add("G:\workspace\...\...\src");
    ////        JavaSourceCodeDirs.add("G:\workspace\...\...\src");
    //        JavaSourceCodeDirs.add("E:\workspace\...\...\...\src");
    //
    //        long codeCountLine = getJavaSourceCodeCountLine(JavaSourceCodeDirs);

            System.out.println(JavaSourceCodeDir.toString() + ":共有 "
                    + codeCountLine + " 行java源代码");
        }
       
       
        public static long getJavaSourceCodeCountLine(String[] JavaSourceCodeDirs) {
            long codeCountLine = 0;
            for (String dirPath : JavaSourceCodeDirs) {
                File fl = new File(dirPath);
                if (fl.exists()) {
                    codeCountLine += getJavaFileCountLine(fl);
                }
            }
            return codeCountLine;
        }
       
        public static long getJavaSourceCodeCountLine(ArrayList<String> JavaSourceCodeDirs) {
            long codeCountLine = 0;
            for (String dirPath : JavaSourceCodeDirs) {
                File fl = new File(dirPath);
                if (fl.exists()) {
                    codeCountLine += getJavaFileCountLine(fl);
                }
            }
            return codeCountLine;
        }

        private static long getJavaFileCountLine(File fl) {
            long javaCodeCountLine = 0;

            if (fl != null && fl.exists()) {
                if (fl.isDirectory()) {
                    File[] listFiles = fl.listFiles();
                    for (File file : listFiles) {
                        javaCodeCountLine += getJavaFileCountLine(file);
                    }
                } else if (fl.isFile() && !fl.isHidden()) {
                    if (fl.getName().endsWith(".java")) {

                        FileReader fr = null;
                        BufferedReader br = null;
                        try {
                            fr = new FileReader(fl);
                            br = new BufferedReader(fr);
                            while (br.readLine() != null)
                                javaCodeCountLine++;
                            br.close();
                            fr.close();
                        } catch (Exception e) {
                        } finally {
                            if (fr != null) {
                                try {
                                    fr.close();
                                } catch (IOException e) {
                                    e.printStackTrace();
                                } finally {
                                    fr = null;
                                }
                            }
                            if (br != null) {
                                try {
                                    br.close();
                                } catch (IOException e) {
                                    e.printStackTrace();
                                } finally {
                                    br = null;
                                }
                            }
                        }
                    }

                }
            }
            return javaCodeCountLine;
        }
    }
  • 相关阅读:
    C语言 · 猜算式
    C语言 · 2n皇后问题
    数据结构 · 二叉树遍历
    C语言 · 滑动解锁
    出现Exception in thread "main" java.lang.UnsupportedClassVersionError: org/broadinstitute/gatk/engine/CommandLineGATK : Unsupported major.minor version 52.0问题解决方案
    linux提取指定列字符并打印所有内容(awk)
    mapping生成sam文件时出现[mem_sam_pe] paired reads have different names错误
    出现“java.lang.AssertionError: SAM dictionaries are not the same”报错
    Linux运行Java出现“Exception in thread "main" java.lang.OutOfMemoryError: Java heap space”报错
    Linux:echo中,>和>>的区别(保存结果和追加结果)
  • 原文地址:https://www.cnblogs.com/wf-l5201314/p/6026813.html
Copyright © 2020-2023  润新知