在我们学习java的过程中,如果想统计自己在一个文件夹中写了多少代码, 下面是一个统计的java代码
1.main方法
public static void main(String[] args) {
String path = "D:\\sofa\\ideajava";
count(new File(path));
System.out.println(f);
System.out.println(r);
}
2.进入最里层的目录,运用递归算法
public static long getFileRow(String file){
long rows=0;
try (FileReader reader=new FileReader(file)){
StringBuilder sbu=new StringBuilder();
while (reader.ready()){
sbu.append(String.format("%c",reader.read()));
}
rows=sbu.toString().lines().count();
}catch (Exception e){
}
return rows;
}
3.对当前目录进行查询
public static void count(File dir) {
File[] files = dir.listFiles();
for (File file : files) {
if (file.isDirectory()) {
count(file);
} else if (file.isFile() && file.getName().endsWith(".java")) {
String p = file.getAbsolutePath();
String t = String.format("%tF %<tT", file.lastModified());
r+=getFileRow(p);
++f;
}
}
}
注意,这三个方法是放到一个类里边,同时要在这一个类里边声明两个全局静态属性r,f。