版权声明:未经博主同意,禁止转载 https://blog.csdn.net/weixin_42130471/article/details/83153296
思路:
主要代码框架:
main(){
countdir("要统计的文件夹路径");
}
countdir(A){//统计文件夹A代码行数
//假设A中子文件有:a,b,c,d
if(a是文件夹) { //依次判断子文件是文件夹还是java文件,是文件夹就递归直到是
//java文件为止,是Java文件就直接统计代码行数
countdir() //递归调用函数countdir()
}
if(A是Java文件){
coutfile() //调用java文件统计代码函数
}
}
countfile(){
......
}
代码实现:
package countcode;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class countcode {
public static void main(String[] args) {
int count=countdir("f:/软件运行文档");//输入要统计的文件夹路径名
System.out.println("最终结果:"+count);
}
public static int countdir(String fordername) {//统计文件夹中所有java文件的代码总行数
int count=0;
File forder=new File(fordername);
if(!forder.exists()) {
System.out.println("文件必须存在");
return -1;
}
File [] files=forder.listFiles();
for(File file:files) {
if(file.isFile()&&file.getName().toLowerCase().endsWith(".java")) {
count+=countfile(fordername+"/"+file.getName());
}
if(file.isDirectory()) {
count+=countdir(fordername+"/"+file.getName());
}
}
return count;
}
public static int countfile(String filename) {//统计某个java文件代码行数
int count=0;
BufferedReader br=null;
try {
br=new BufferedReader(new FileReader(filename));
String str=br.readLine();
while(str!=null) {
count++;
str=br.readLine();
}
}
catch (IOException e) {
e.printStackTrace();
}finally {
try {
if(br!=null)
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return count;
}
}