import java.io.*;
public class codeCount2{
static long normalLines=0;
static long commentLines=0;
static long whiteLines=0;
public static void main(String[] args){
int level=1;
File f=new File("E:/test3");
System.out.println(f.getName());
showAll(f,level);
System.out.println("normalLines:"+normalLines);
System.out.println("commentLines:"+commentLines);
System.out.println("whiteLines:"+whiteLines);
}
public static void showAll(File f,int level){
String preStr="";
for(int i=0;i
preStr+=" ";
}
File[] ff=f.listFiles();
int i;
for(i=0;i
System.out.println(preStr+ff[i].getName());
if(ff[i].isDirectory())showAll(ff[i],level+1);
if(ff[i].isFile()&&ff[i].getName().matches(".*\\.java$")){
parse(ff[i]);
}
}
}
private static void parse(File f){
BufferedReader br=null;
boolean comment=false;
try{
br=new BufferedReader(new FileReader(f));
String line="";
while((line=br.readLine())!=null){
line=line.trim();
if(line.matches("^[\\s&&[^\\n]]*$")) //readLine()时已经把换行给去掉了,所以查找空行的正则表达式时没有后面的换行匹配了
whiteLines++;
else if(line.startsWith("/*")&&!line.endsWith("*/")){
commentLines++;
comment=true;
}else if(line.startsWith("/*")&&line.endsWith("*/")){
commentLines++;
}else if(true==comment){
commentLines++;
if(line.endsWith("*/"))
comment=false;
}
else if(line.startsWith("//")){
commentLines++;
}
else{
normalLines++;
}
}
}catch(Exception e){
System.out.println("出错啦!");
e.printStackTrace();
}finally{
if(br!=null){
try{
br.close();
br=null;
}catch(IOException e){e.printStackTrace();
}
}
}
}
}
相关文章
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250