使用BufferedReader 的readLine方法来计算自己写的代码总行数
public class Demo {
//因为要再静态方法中使用该变量,所以定义为静态,此变量用来存储java代码行数
static long count;
public static void main(String[] args) {
//调用getSum方法指定需要查询的代码在本地存储的位置,这里放的是绝对路径
System.out.println("写的代码行数:"+getSum(new File("D:\\myself\\study\\code")));
}
public static long getSum(File f) {
//获得当前路径下的所有文件夹
File[] arr = f.listFiles();
//判断当前路径不为空
if (arr!=null) {
//变量当前路径的所有文件
for (File file : arr) {
//如果类型属于文件并且文件的后缀名为“java”
if (file.isFile() && file.getName().endsWith("java")) {
try {
//创建字符缓冲输入流对象,指定源文件路径
BufferedReader br = new BufferedReader(new FileReader(file));
//当读取一行后java代码行数+1
while (br.readLine()!=null) {
count++;
}
} catch (Exception e) {
//若是程序出现异常则进行捕获并在控制台打印异常信息
System.out.println("程序出现异常,异常信息:"+e.getMessage());
}
}
//如果当前是文件夹则再次调用getSum方法进行判断,直到读完指定源文件路径下的所有文件夹及其所有子文件
if (file.isDirectory()) {
getSum(file);
}
}
}
//将最终的结果返回
return count;
}
}
注意:运行此文件读取的是java文件,需要在本地中设置可查看文件后缀名
