packagecom.maya.hanqi.coder;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.io.IOException;public classCodeCounter {private static Integer code = 0;private static Integer codeComments = 0;private static Integer codeBlank = 0;public static voidmain(String[] args) {
File file= new File("E:\\EclipseSpace\\JavaWorkPlace\\JavaWeb_TestJDBC\\src\\com\\hanqi");
factFiles(file);
System.out.println("代码行数" +code);
System.out.println("空白行数" +codeBlank);
System.out.println("注释行数" +codeComments);
}public static voidfactFiles(File file) {
BufferedReader br= null;
String s= null;if(file.isDirectory()) {
File[] files=file.listFiles();for(File f : files) {
factFiles(f);
}
}else{try{
br= new BufferedReader(newFileReader(file));boolean comm = false;while((s = br.readLine()) != null) {if(s.startsWith("/*") && s.endsWith("*/")) {
codeComments++;
}else if(s.trim().startsWith("//")) {
codeComments++;
}else if(s.startsWith("/*") && !s.endsWith("*/")) {
codeComments++;
comm= true;
}else if(!s.startsWith("/*") && s.endsWith("*/")) {
codeComments++;
comm= false;
}else if(comm) {
codeComments++;
}else if(s.trim().length() < 1) {
codeBlank++;
}else{
code++;
}
}
br.close();
}catch(FileNotFoundException e) {
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}
}
}
}