代码量统计工具类

一:先看运行结果

二:工具类源码

package codeCounter;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class Service {
   public static int[] statistics(File file){
		   if(file.isDirectory()){
			   File[]files=file.listFiles();
			   int[]sum=new int[]{0,0,0,0,0,0};
			   for (int i = 0; i < files.length; i++) {
				  File fl=files[i];
				  sum=plus(sum,statistics(fl));
			  }
			   return sum;
		   }else{
			   return read(file);
		   }

   }
   private static int[] plus(int[] xx,int[] yy) {
	   if(xx.length!=yy.length){
		   throw new RuntimeException("异常");
	   }
	   int[]last=new int[xx.length];
	for (int i = 0; i < yy.length; i++) {
		last[i]=xx[i]+yy[i];
	}
	return last;
}
public static int[] read(File file){
	   String name=file.getName();
	   int[]last=new int[]{0,0,0,0,0,0};
	   int sum1=0;
	   int sum2=0;
	   int sum3=0;
	   if(name.endsWith(".java")){
		   BufferedReader br=null;
		   try{
		   br=new BufferedReader(new FileReader(file));
		   String line=null;
		   while((line=br.readLine())!=null){
			   if(!"".equals(line.trim())){
				   if(!line.trim().startsWith("//")){
					   sum1++;
				   }
				   sum2++;
			   }
			   sum3++;
		   }
		   last[0]=sum1;
		   last[1]=sum2;
		   last[2]=sum3;
		   last[5]=1;
		   }catch(FileNotFoundException e){
			   e.printStackTrace();
		   }catch(IOException e){
			   e.printStackTrace();
		   }finally{
			   try {
				br.close();
			   } catch (IOException e) {
				e.printStackTrace();
			    }
		   }
	   }else{
		   last[0]=0;
		   last[1]=0;
		   last[2]=0;
		   last[3]=0;
		   last[4]=0;
		   last[5]=0;
	   }
	   return last;
   }
}

三:运行工具类

public class Main {

	/**
	 * 功能:统计代码的行数
	 * 说明:支持 整个工程的代码行数统计
	 * @param args
	 */
	public static void main(String[] args) {
		String fileName="F:/workspace/brightmaven/src/main";
		File file=new File(fileName);
		int[]sum=Service.statistics(file);
        System.out.println("共有 "+sum[5]+" 个类");
        System.out.println("忽略注释忽略空行共 "+sum[0]+" 行");
        System.out.println("包括注释忽略空行共 "+sum[1]+" 行");
        System.out.println("包括注释包括空行共 "+sum[2]+" 行");

	}

}

时间: 2024-10-12 21:43:26

代码量统计工具类的相关文章

svn代码量统计工具

StatSVN介绍 StatSVN是一个Java写的开源代码统计程序,从statCVS移植而来,能够从Subversion版本库中取得信息,然后生成描述项目开发的各种表格和图表.比如:代码行数的时间线:针对每个开发者的代码行数:开发者的活跃程度:开发者最近所提交的:文件数量:平均文件大小:最大文件:哪个文件是修改最多次数的:目录大小:带有文件数量和代码行数的Repository tree.StatSVN当前版本能够生成一组包括表格与图表的静态HTML文档. StatSVN下载 StartSVN官

[statsvn]-svn代码量统计

用statasvn进行代码量统计的时候,第一步需要获取到项目的日志,但是我本机的svn1.4没有安装命令行,重新运行1.4的安装包也没有命令行的选项... 那就升级到最新的svn1.8好了,下载最新的svn安装包,按照要求直接运行了两次安装,第一次安装,第二次修复,然后重点来了,重启的时候报MSVCP120.dll丢失的错误,原来的svn也不能用了啊 然后在网上找到一个解决方案: http://6.scdx3.crsky.com/soft/201407/DirectX_Repair-v3.2.z

&ldquo;代码量统计脚本&rdquo;

概述 本文从一段统计C/C++程序脚本入手,记录shell脚本常用和重要的知识点. 代码量统计程序 文件名称,count_code_line.sh 123456789101112131415161718192021222324252627282930313233343536 #!/bin/bash # 统计代码行数 去除空格和注释# author: by wangxintang function count_dir(){ total1=0 for input in $* do count=`fi

IDEA 代码量统计(Statistic)

IDEA 代码量统计(Statistic) 1.1 前言 项目到了一定阶段,都会想要看看项目的代码量情况,这里主要使用插件Statistic进行代码统计查看. 1.2 安装插件步骤 找到插件市场入口并安装插件:File-->Setting...-->Plugins,按照图片步骤,1点击安装tab页,2输入Statistic关键字,3勾选插件,4点击OK进行安装: 安装成功后重启IDEA 重启完毕后等待编辑器初始化相关信息,然后在编辑器左下方找到Statistic插件,点击打开主界面: 点击Re

git代码量统计(转载)

git统计某人代码量 指定用户名版 git log --author="your_name_here" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' 结果示例:added lines:

Mac OS X代码量统计程序(Python版)

方便统计各种平台项目的代码量,主要用到了find指令来进行处理的详情点击打开链接: 源代码下载点击打开链接 源代码如下: # -*- coding: utf-8 -*- ''' Created on Jul 18, 2014 @author: Jayhomzhou @note: 计算注释以及代码的总行数(即代码量) ''' import subprocess def countCodes(codePath, fileTypes): typeStrs = '' for ft in fileType

shell scripts 之 代码量统计

代码统计 code如下: xargs说明:xargs 读入stdin的值, 并默认以空白或者回车作为分隔符,将分割的值作为参数传给后面紧接着的的命令行操作.-d  --delim  : 指定分隔符:-a  : 从文件中读入数据; wc说明:统计指定文件中的字符数,字节数,行数用法格式: wc [options] [filename]options说明:-c  : 统计字节数:-m  : 统计字符数:-w  : 统计字数:-l  : 统计行数:-help  : 帮助: --------------

git 代码量统计

使用 git bash , 进入项目根目录 git log --author="your_id" --pretty=tformat: --numstat | gawk '{ add += $1; subs += $2; loc += $1 + $2 } END { printf "added lines: %s removed lines: %s total lines: %s\n", add, subs, loc }' -

svn代码统计工具的金额

StatSVN介绍 StatSVN是Java写开源统计程序,从statCVS从移植.从能Subversion版本号来获取信息库,该项目开发的叙述性说明,然后生成各种表格和图表.例:时间线.针对每一个开发人员的代码行数:开发人员的活跃程度:开发人员近期所提交的:文件数量:平均文件大小:最大文件.哪个文件是改动最多次数的:文件夹大小:带有文件数量和代码行数的Repository tree. StatSVN当前版本号能够生成一组包含表格与图表的静态HTML文档. StatSVN下载 StartSVN官