package com.nange.file;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/**
* 统计java文件代码行数
* 作者: 一天
* 时间:2018-04-08 17:19:56
*
*/
public class FileRowTotal {
/**
* 统计java文件代码行数
* 作者: 一天
* 时间:2018年4月8日 下午5:22:23
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
String path="G:\\eclipseWorkSpace\\develop2\\code\\spdb_cm";
List<File> list=total(path);
System.out.println("文件数量:"+list.size());
//统计代码行数
Integer row=0;
for (File file : list) {
System.out.println(file.getName());
FileReader fr=new FileReader(file);//创建文件输入流
BufferedReader in=new BufferedReader(fr);//包装文件输入流,可整行读取
String line="";
while((line=in.readLine()) != null) {
row++;
}
}
System.out.println("代码行数:"+row);
}
/**
* 获取文件的集合
* 作者: 一天
* 时间:2018年4月8日 下午5:20:36
* @param path
* @return
*/
public static List<File> total(String path){
List<File> fileList=new ArrayList<File>();
File file=new File(path);
File []files=file.listFiles();
if (files!=null&&files.length!=0) {
for (File file1 : files) {
if(file1.isFile()&&file1.toString().endsWith(".java")){
fileList.add(file1);
}else {
fileList.addAll(fileList.size(), total(file1.getPath()));
}
}
}
return fileList;
}
}