/** * @Classname CustBankcardServiceImpl * @Description 计算项目代码量(行数) * @Date 2019/11/04 14:24 * @Created by lw */ public class CalcCodeNum { public static void main(String[] args) throws IOException { // java代码 int java_num = getProjectFileNumber(new File("D:\lw\work_space\yxhd\lcs\lcs-service\src\main\java\io\kyoto"), ".java"); // resource目录 // xml int xml_num = getProjectFileNumber(new File("D:\lw\work_space\yxhd\lcs\lcs-service\src\main"), ".xml"); // properties int properties_num = getProjectFileNumber(new File("D:\lw\work_space\yxhd\lcs\lcs-service\src\main"), ".properties"); System.out.println("java:" + java_num); System.out.println("xml:" + xml_num); System.out.println("properties:" + properties_num); System.out.println("total:" + (java_num + xml_num + properties_num)); } /** * 递归获取文件中代码行数 * */ private static int getProjectFileNumber(File file, String endsWith) throws IOException{ int number = 0; if (file.exists()) { if (file.isDirectory()) { for (File subFile : file.listFiles()) { number += getProjectFileNumber(subFile, endsWith); } } else if (file.isFile() && file.getName().endsWith(endsWith)) { BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file))); while (br.readLine() != null) { number += 1; } } else { System.out.println("===" + file.getAbsolutePath()); } } return number; } }