package com.utils;
import java.io.BufferedReader;
import java.io.File;import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class test {
static int count = 0;
public static void main(String[] args) throws IOException {
//获取所要查询文件夹路径
String path = "D:\\GZW\\szyd_qy_server";
myCodeCount(new File(path));
System.out.println("总代码行数为"+count);
}
/**
* 递归统计代码总行数
* @throws IOException
*/
public static void myCodeCount(File file) throws IOException {
//文件是否为普通文件并以.java为后缀结尾
if (file.isFile() && (file.getName().endsWith(".java"))) {
int i = readData(file);
count += i;
}
if (file.isDirectory()) {//测试此抽象路径名表示的文件是否为目录
File[] files = file.listFiles();
for (File f : files) {
File[] files2 = f.listFiles(new FileFilter() {
@Override
public boolean accept(File f) {
if (f.getName().endsWith(".java")){
return true;
}
return false;
}
});
myCodeCount(f);
}
}
}
/**
* 单个文件中的行数
*/
public static int readData(File file) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
String str = null;
int i = 0;
while ((str = br.readLine())!=null) {
i++;
}
br.close();
System.out.println(file.getName()+"的行数为"+i);
return i;
}
}
版权声明:本文为weixin_44229535原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。