自己写一个java类,统计一个工程里java代码的总行数。核心算法就是子目录的递归查找。
/*
* 统计当前工程目录下所有.java文件的总行数
*/
package lineCounter;
import java.io.File;
import java.io.IOException;
import java.io.FileReader;
import java.io.BufferedReader;
public class CountLine {
protected File root; // FileFinder的查找范围
protected int lineCounter; // 行数计数器
public void Dir(String rootname) // 输入目录,从该目录开始查找
{
if (rootname.charAt(rootname.length()-1)!=File.separatorChar)
{
rootname = rootname+File.separator; // 如果结尾不是分隔符,则添上分隔符
}
root = new File(rootname); // 初始化root对象
}
public void countLine() // 统计根目录下所有.java文件的总行数
{
lineCounter = 0; // 行数计数器归零
recurrent(root); // 列出根目录下逐级子目录,如果是.java则统计行数
}
public int getLines() // 获取行数统计结果
{
return lineCounter;
}
protected void recurrent(File root) // 输入根目录,递归输出根目录下各级子目录及其文件
{
if (root != null) // 如果目录非空
{
String sro