java实现代码统计小程序
本文实例为大家分享了java代码统计小程序,供大家参考,具体内容如下
可以测试每周你的工作量
packagerexExp;
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileNotFoundException;
importjava.io.FileReader;
importjava.io.IOException;
publicclassCodeCounter{
//三个静态变量存储行数
staticlongnormalLines=0;
staticlongcommentLines=0;
staticlongwhileLines=0;
publicstaticvoidmain(String[]args){
Stringpathname="E:\\testeclipseworkspace\\JavaLearn\\src\\collection";
Filefile=newFile(pathname);
File[]codeFiles=file.listFiles();//找到文件夹下面的所有子文件
//文件必须是以.java结尾,用正则表达式来验证
for(Filechild:codeFiles){
if(child.getName().matches(".*\\.java$")){
parse(child);
}
}
System.out.println("normalLines:"+normalLines);
System.out.println("commentLines:"+commentLines);
System.out.println("whileLines:"+whileLines);
}
privatestaticvoidparse(Filefile){
BufferedReaderbReader=null;
booleancomment=false;
try{
bReader=newBufferedReader(newFileReader(file));
//读其中的每一行
Stringline="";
while((line=bReader.readLine())!=null){
line=line.trim();//去掉首尾空格
//统计空行的行数
if(line.matches("^[\\s&&[^\\n]]*$")){
whileLines++;
}
//统计注释的行数
elseif(line.startsWith("/*")&&!line.endsWith("*/")){
commentLines++;
//如果遇到"/*",说明注释开始了
comment=true;
}
elseif(line.startsWith("/*")&&line.endsWith("*/")){
commentLines++;
}
elseif(true==comment){
commentLines++;
if(line.endsWith("*/")){
comment=false;
}
}
elseif(line.startsWith("//")){
commentLines++;
}
else{
normalLines++;
}
}
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}finally{
if(bReader!=null){
try{
bReader.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
