Java 统计一个项目中src下的所有 .java 文件的代码行数, 注释行数, 空行数
package com.maya.hanqi.coder; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class CodeCounter { private static Integer code = 0; private static Integer codeComments = 0; private static Integer codeBlank = 0; public static void main(String[] args) { File file = new File("E:\\EclipseSpace\\JavaWorkPlace\\JavaWeb_TestJDBC\\src\\com\\hanqi"); factFiles(file); System.out.println("代码行数" + code); System.out.println("空白行数" + codeBlank); System.out.println("注释行数" + codeComments); } public static void factFiles(File file) { BufferedReader br = null; String s = null; if(file.isDirectory()) { File[] files = file.listFiles(); for(File f : files) { factFiles(f); } } else { try { br = new BufferedReader(new FileReader(file)); boolean comm = false; while((s = br.readLine()) != null) { if(s.startsWith("/*") && s.endsWith("*/")) { codeComments++; } else if(s.trim().startsWith("//")) { codeComments++; } else if(s.startsWith("/*") && !s.endsWith("*/")) { codeComments++; comm = true; } else if(!s.startsWith("/*") && s.endsWith("*/")) { codeComments++; comm = false; } else if(comm) { codeComments++; } else if(s.trim().length() < 1) { codeBlank++; } else { code++; } } br.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步