public class Hello {
public static int num = 0;
public static long zongrow = 0;
public static void main(String[] args) {
//count(new File(System.getProperty("user.dir")));
//System.out.println(num);
//System.out.println(getRow(new File("D:\\java\\javaproject\\javase\\test01\\src\\com\\gnozt\\Hello.java")));
count(new File("D:\\java\\javaproject\\javase"));
System.out.println(num+"个文件总共有:"+zongrow+"行");
}
//1.求目录中所有java文件(1和2是两个连着的)
public static void count(File dir){
File[] files = dir.listFiles(); //列出所有文件和目录
for (File f : files) {
if (f.isFile()){
if (f.getName().endsWith("java")){
++num;
//System.out.println(f.getName()); //输出Java文件的名字
//这里的所有 f 都是目录中的java文件
long row = getRow(f);
System.out.printf("%s文件共有%d行%n",f,row);
zongrow += row;
}
}else {//走到这里说明遍历以后还是一个目录,执行递归,让它继续遍历
count(f);
}
}
}
//2.得到文件中的行数
public static long getRow(File file){
long sum = 0;
try (var s = new FileInputStream(file)){
long count = new String(s.readAllBytes()).lines().count(); //把文件读取字节并转化为字符串,并计算行数,然后计算行数的多少
sum +=count;
}catch (Exception e){
e.printStackTrace();
}
return sum;
}
}
统计目录中有多少个java文件,总共有多少行代码?
最新推荐文章于 2024-07-08 00:01:13 发布