Java统计代码行数

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java统计代码⾏数
统计代码⾏数
给⼀个⽂件⽬录,遍历该⽬录下的所有⽂件,如果是.java⽂件,利⽤字符流读取该java源⽂件,统计全部java⽂件的代码共有多少⾏,java⽂件个数有多少提⽰:先获取所有⽂件,如果⽂件名以java结尾则表⽰是Java⽂件。

然后再计算所有Java⽂件的⾏数总合,以及Java⽂件的个数。

import java.io.File;
import java.io.FileReader;
import java.io.IOException;
/**
* @ClassName: Work
* @Description: 1.统计代码⾏数
给⼀个⽂件⽬录,遍历该⽬录下的所有⽂件,如果是.java⽂件,利⽤字符流读取该java源⽂件,统计全部java⽂件的代码共有多少⾏,java⽂件个数有多少提⽰:先获取所有⽂件,如果⽂件名以java结尾则表⽰是Java⽂件。

然后再计算所有Java⽂件的⾏数总
合,以及Java⽂件的个数。

* @author LYL
* @date 2021-01-13 11:32:40
*/
public class Work {
public static void main(String[] args) {
//需要扫描统计的路径
File file = new File("C:\\Test");
String str = null;
try {
//调⽤scan⽅法并拿到返回的字符串
str = scan(file,0,0);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("扫描完毕");
String[] str2 = str.split(",");
//将返回出的字符串解析为数字
int lineNum = Integer.parseInt(str2[0]);
int fileNum = Integer.parseInt(str2[1]);
System.out.println("⾏数为:"+lineNum+",⽂件数为:"+fileNum);
}
public static String scan(File f,int LineNumber, int FileNumber) throws IOException {
int lineNum = LineNumber;
int fileNum = FileNumber;
// 将传⼊的File对象变成File数组
File[] lf = f.listFiles();
// 如果为空则结束这次⽅法。

避免空指针异常
if (lf == null) {
return null;
}
// 循环遍历lf中的每个File对象
for (File f1 : lf) {
// 如果当前遍历到的这个File对象是⽂件夹
if (f1.isDirectory()) {
// 得到当前⽂件夹的路径
String path = f1.getAbsolutePath();
// 重新调⽤当前⽅法,并传⼊刚刚遍历到的⽂件夹对象,⾏数和⽂件数,并⽤⼀个String接收返回的字符串
String test = scan(new File(path),lineNum,fileNum);
String[] str2 = test.split(",");
//将拿到的返回出的字符串解析为⾏数和⽂件数
lineNum = Integer.parseInt(str2[0]);
lineNum = Integer.parseInt(str2[0]);
fileNum = Integer.parseInt(str2[1]);
// 如果当前File对象是⼀个⽂件
} else {
//判断是不是java⽂件
if(f1.getName().endsWith(".java")) {
fileNum++;
}
// 输出当前⽂件的名称
//System.out.println(f1.getName());
//创建当前⽂件的对象
File file = new File(f1.getAbsolutePath());
FileReader fr = null;
//创建字符流
fr = new FileReader(file);
int i = 0;
while((i = fr.read())!=-1) {
Character c = (char)i;
//将读出的字符转换为字符串
String temp = c.toString();
//判断字符串中有没有换⾏
if(temp.contains("\n")) {
lineNum++;
}
}
//关闭字符流
fr.close();
}
}
System.out.println("lineNum = "+lineNum+", fileNum = "+fileNum); //将⾏数和⽂件数返回
return lineNum+","+fileNum;
}
}。

相关文档
最新文档