java 统计代码行数
来源:互联网 发布:淘宝翻墙代理 编辑:程序博客网 时间:2024/05/17 03:55
请参考
package com.kyjszj.learn.tools;import java.io.*;import java.util.ArrayList;/** * 代码行数统计 */public class CodeCounter { /** * 代码行数统计 */ public static void main(String[] args) { String file = CodeCounter.class.getResource("/").getFile(); String path = file.replace("target/test-classes", "src"); ArrayList<File> al = getFile(new File(path)); for (File f : al) { if (f.getName().matches(".*\\.java$")){ // 匹配java格式的文件 count(f); System.out.println(f); } } System.out.println("统计文件:" + files); System.out.println("代码行数:" + codeLines); System.out.println("注释行数:" + commentLines); System.out.println("空白行数:" + blankLines); } static long files = 0; static long codeLines = 0; static long commentLines = 0; static long blankLines = 0; static ArrayList<File> fileArray = new ArrayList<File>(); /** * 获得目录下的文件和子目录下的文件 * @param f * @return */ public static ArrayList<File> getFile(File f) { File[] ff = f.listFiles(); for (File child : ff) { if (child.isDirectory()) { getFile(child); } else fileArray.add(child); } return fileArray; } /** * 统计方法 * @param f */ private static void count(File f) { BufferedReader br = null; boolean flag = false; try { br = new BufferedReader(new FileReader(f)); String line = ""; while ((line = br.readLine()) != null) { line = line.trim(); // 除去注释前的空格 if (line.matches("^[ ]*$")) { // 匹配空行 blankLines++; } else if (line.startsWith("//")) { commentLines++; } else if (line.startsWith("/*") && !line.endsWith("*/")) { commentLines++; flag = true; } else if (line.startsWith("/*") && line.endsWith("*/")) { commentLines++; } else if (flag == true) { commentLines++; if (line.endsWith("*/")) { flag = false; } } else { codeLines++; } } files++; } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (br != null) { try { br.close(); br = null; } catch (IOException e) { e.printStackTrace(); } } } }}
0 0
- 统计java代码行数
- Java统计代码行数
- JAVA统计代码行数
- java统计代码行数
- java代码行数统计
- java 统计代码行数
- java代码行数统计工具
- java实现统计代码行数
- 统计Java项目代码行数
- 统计java代码行数工具
- java代码行数统计工具
- Java代码行数的统计
- 统计java代码的行数
- Java统计脚本代码行数
- 项目代码行数统计--java类统计
- 统计你写的java代码行数
- 统计你写的java代码行数
- 统计文件夹下java代码行数
- Linux下集群时间同步
- Java 读取扫描枪
- 解决移动端点击链接触发颜色块的问题
- 数据库视图和表的区别
- UVA-558 Wormholes(Floyd)
- java 统计代码行数
- LeetCode 74. Search a 2D Matrix
- Vs2012 一直“正在更新 IntelliSense”
- LightOj1303
- Android Mms之:草稿管理的应用
- linux下启动tomcat 服务 常用命令
- 了解Android及开发前准备
- 210. Course Schedule II
- Vim入门基础