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(); } } } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。