java代码行数统计

Main.java

package start;

import java.io.File;

import service.Service;

public class Main {

	/**
	 * 程序名称:java代码行数统计软件.
	 * 功能:统计代码的行数
	 * 说明:支持 整个工程的代码行数统计
	 * @param args
	 */
	public static void main(String[] args) {
		String fileName="D:/WorkSpace/code_sum";
		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]+" 行");
	}

}

 

Service.java

package service;

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){
	   //File file=new File(path);
	   //int[]every=
		   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;
   }
}



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值