/**
* @Classname CustBankcardServiceImpl
* @Description 计算项目代码量(行数)
* @Date 2019/11/04 14:24
* @Created by lw
*/
public class CalcCodeNum {
public static void main(String[] args) throws IOException {
// java代码
int java_num = getProjectFileNumber(new File("D:\\lw\\work_space\\yxhd\\lcs\\lcs-service\\src\\main\\java\\io\\kyoto"), ".java");
// resource目录
// xml
int xml_num = getProjectFileNumber(new File("D:\\lw\\work_space\\yxhd\\lcs\\lcs-service\\src\\main"), ".xml");
// properties
int properties_num = getProjectFileNumber(new File("D:\\lw\\work_space\\yxhd\\lcs\\lcs-service\\src\\main"), ".properties");
System.out.println("java:" + java_num);
System.out.println("xml:" + xml_num);
System.out.println("properties:" + properties_num);
System.out.println("total:" + (java_num + xml_num + properties_num));
}
/**
* 递归获取文件中代码行数
* */
private static int getProjectFileNumber(File file, String endsWith) throws IOException{
int number = 0;
if (file.exists()) {
if (file.isDirectory()) {
for (File subFile : file.listFiles()) {
number += getProjectFileNumber(subFile, endsWith);
}
} else if (file.isFile() && file.getName().endsWith(endsWith)) {
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
while (br.readLine() != null) {
number += 1;
}
} else {
System.out.println("===" + file.getAbsolutePath());
}
}
return number;
}
}