开发中统计代码量

标签: 开发 统计 代码 | 发表时间:2014-12-11 09:52 | 作者:hy2012_campus
出处:http://www.iteye.com

开发中我们想知道到底有多少代码?能够除掉空格和注释等

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;
       }
}

import java.io.File;
import java.util.Arrays;

public class Main {
    /**
     * 程序名称:java代码行数统计软件.
     * 功能:统计代码的行数
     * 说明:支持 整个工程的代码行数统计
     */
    public static void main(String[] args) {
         //获取当前项目的路径
        String fileName=System.getProperty("user.dir");
        File file= new File(fileName);
         int[]sum=Service.statistics(file);
        System.out.println("" +Arrays.toString(sum));
        System. out.println("共有 " +sum[5]+" 个类" );
        System. out.println("忽略注释忽略空行共 "+sum[0]+" 行");
        System. out.println("包括注释忽略空行共 "+sum[1]+" 行");
        System. out.println("包括注释包括空行共 "+sum[2]+" 行");
    }
}

 



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [开发 统计 代码] 推荐:

开发中统计代码量

- - 开源软件 - ITeye博客
开发中我们想知道到底有多少代码. throw new RuntimeException("异常");. sum1++;//不包括注释换行. sum3++;//包括注释,换行. * 程序名称:java代码行数统计软件. * 说明:支持 整个工程的代码行数统计. out.println("共有 " +sum[5]+" 个类" );.

代码统计工具

- - 企业架构 - ITeye博客
代码统计工具:cloc(count lines of code)能够兼容windows和linux操作系统. 下载url:http://sourceforge.net/projects/cloc/files/cloc/. 下面以windows系统为例说明配置过程:. 下载cloc,并为cloc配置环境变量,使在windows命令行下所有目录可以执行cloc命令.

java代码开发规范

- - BlogJava_首页
格式规范:                                                                      .       1、TAB空格的数量. 编辑器上的TAB空格数量统一取值为4.       2、换行, 每行120字符.       3、if语句的嵌套层数3层以内   .

Android Native 代码开发学习笔记

- iDesperadO - WindStorm
本文提供排版更佳的PDF版本下载. JNI,全称Java Native Interface,是用于让运行在JVM中的Java代码和运行在JVM外的Native代码(主要是C或者C++)沟通的桥梁. 代码编写者即可以使用JNI从Java的程序中调用Native代码,又可以从Native程序中调用Java代码.

再谈低代码开发平台(200727)

- - 人月神话的BLOG
今天准备谈下快速开发平台和低代码开发平台方面的内容. 对于快速开发平台在10年前我关注的比较多,当时也是属于快速开发平台的狂热者,也试图去构建一个完整的包括了对象建模,数据建模,流程建模,规则建模,界面建模的完整快速开发平台. 但是最近几年这方面的关注比较少,只在16年对开源的基于元数据驱动的EOVA平台进行了简单试用,在去年对JEPaas平台进行了简单试用.

低代码开发脚手架 citrus-vuetify

- - OSCHINA 社区最新软件

介绍一个好用的代码统计工具

- - 研发管理 - ITeye博客
想知道了解一下项目的代码规模,得到类数,代码行等统计信息,就用cloc吧,很好,很强大. cloc支持几乎什么的OS,当然也包括Windows,如果是Windows直接下载EXE文件(http://sourceforge.net/projects/cloc/),设置一个PATH环境变量就可以用了.   即可得到代码的统计信息:.

统计SVN代码行数工具-StatSVN - valleylord - 博客园

- -
获取SVN log:svn log -v -r 17461:39224 --xml > logfile.log. 用StatSVN分析:java -jar ~/project/statsvn-0.7.0/statsvn.jar logfile.log . StatSVN是一个Java写的开源代码统计程序,从statCVS移植而来,能够从Subversion版本库中取得信息,然后生成描述项目开发的各种表格和图表.

Calibre开发者指责Hamstersoft抄袭其GPL代码

- satan - Solidot
Calibre是一款备受欢迎的开源电子书管理软件,整合了电子书格式转换功能. 源代码在GPLv3许可证下发布. Hamstersoft Ebook Converter是最近推出的一款电子书格式转换程序,它主要是在Calibre源代码基础上加上一个定制UI. 根据GPL许可证要求,它必须公开源代码. Calibre开发者John Schember发现,Hamstersoft没有遵守许可证要求,他通知该公司之后给他们留出了一个月时间修正问题.

微软开发者对Linux 3.0代码的改动最多

- China Moon - Solidot
根据LWN.net的统计(需订阅),在Linux 3.0中,微软开发者K.Y.Srinivasan贡献了343次更改,在所有Linux 3.0开发者中排名第一;在企业和机构排名中,微软贡献了361次更改,排名第七,独立开发者贡献了1,085次更改,Red Hat为1,000次,Intel为839次.