#计算自己写了多少行代码
package Day21;
import java.io.File;
import java.io.FileInputStream;
public class CountFiles {
static int num = 0;
static int rows = 0;
public static void main(String[] args) {
File s = new File("D:\\学习资料\\untitled1.8\\src");
count(s);
System.out.println("----------------------------");
System.out.println("总共:"+num+"个java文件");
System.out.println("共" + rows + "行");
}
/**
* Description: 递归遍历目录,使用静态的成员变量,统计java文件的个数
* @date: 2022/9/21 14:37
* @params: [java.io.File]
* @return: void
*/
public static void count(File src) {
if (src.isDirectory()) {
File[] fs = src.listFiles();
for (File f : fs) {
if (f.isDirectory()) count(f);
if (f.isFile() && f.getName().endsWith(".java")){
++num;
rows+=getFileRows(f);
//System.out.printf("文件:%s (%d行)。%n",f.getAbsolutePath(),getFileRows(f));
}
}
}
}
/**
* Description: 获取文件的行数
* @date: 2022/9/21 14:37
* @params: [java.io.File]
* @return: int
*/
public static int getFileRows(File src) {
int rows = 0;
try (FileInputStream fis = new FileInputStream(src)) {
rows = (int) new String(fis.readAllBytes()).lines().count();
} catch (Exception e) {
}
return rows;
}
}