开发中统计代码量
- - 开源软件 - ITeye博客开发中我们想知道到底有多少代码. throw new RuntimeException("异常");. sum1++;//不包括注释换行. sum3++;//包括注释,换行. * 程序名称:java代码行数统计软件. * 说明:支持 整个工程的代码行数统计. out.println("共有 " +sum[5]+" 个类" );.
开发中我们想知道到底有多少代码?能够除掉空格和注释等
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]+" 行");
}
}