import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class CodeCounter {
static int normalLines = 0;
static int blankLines = 0;
static int commentLines = 0;
public static void main(String[] args) {
String codePath = "E:\\eclipse\\MyProjects\\TestGUI\\src";
File f = new File(codePath);
File[] fileList = f.listFiles();
for(File fname : fileList) {
clac(fname);
}
System.out.printf("normalLines = %d\nblankLines = %d\ncommentLines = %d\n",
normalLines,blankLines,commentLines);
}
private static void clac(File fname) {
BufferedReader br = null;
boolean flag = false;
if(null == fname) {
return;
}
try {
br = new BufferedReader(new FileReader(fname));
String line = "";
while((line = br.readLine()) != null) {
line = line.trim(); //去掉开头的空格
//处理注释语句
if(line.startsWith("/*") && line.endsWith("*/")) {
commentLines ++;
} else if(line.startsWith("/*") && !line.endsWith("*/")) {
commentLines ++;
flag = true;
} else if(flag == true) {
commentLines ++;
if(line.contains("*/")) {
flag = false;
}
} else if(line.startsWith("//")) {
commentLines ++;
} else if(line.matches("^[\\s&&[^\\n]]*$")) {
blankLines ++;
} else {
normalLines ++;
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
代码行数计数器
最新推荐文章于 2025-02-09 20:11:35 发布