其实用到的东西很简单 File
,BufferedReader
。利用迭代的思路去处理下就好。
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
/**
* 项目的统计java文件,及行数统计
* 用到迭代的方式。
* [@author](http://my.oschina.net/arthor) Administrator
*/
public class JavaCodeLines {
private static int file_num = 0;
private static int line_num = 0 ;
private final static String FILE_PATH = "f:/book";
public static void fileAndLine(File drl){
File[] files = drl.listFiles();//取得路径下所有的文件和目录列表
for(int i = 0 ; i < files.length ; i++){
if(files[i].isDirectory()){
fileAndLine(files[i]);
}else{//如果是文件
if(files[i].getName().endsWith(".java")){
file_num ++;
//计算文件的行数
BufferedReader br = null;
try {
br = new BufferedReader (new FileReader(files[i]));
while(br.readLine()!=null){//一次读取一行,一直读到流的结尾
line_num++;
}
br.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
if(br!=null){
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
}
}
public static void main(String[] args) {
File project = new File(FILE_PATH);
fileAndLine(project);
System.out.println("files number: " + file_num);
System.out.println("code lines: " + line_num);
}
}